A whirlwind tour of object-oriented code in F# (2012)
A whirlwind tour of object-oriented code in F#
J can look like APL or English
J 1 is a concise, interpreted array programming language which looks infamously like line noise. It is the successor to APL , which is a concise, interpreted array programming language which looks infamously like hieroglyphics.
PyPy v7.1 released; now uses UTF-8 internally for Unicode strings
The PyPy team is proud to release version 7.1.0 of PyPy, which includes two different interpreters: PyPy2.7, which is an interpreter s...
PEG Parsers
Some years ago someone asked whether it would make sense to switch Python to a PEG parser. (Or a PEG grammar; I don’t recall exactly what…
Modern garbage collection: Part 2
A look at what the newest generation of Java GCs can do
Shell Completions in Rust
If you've ever hit the tab key while typing commands in the shell, you are familiar with the value of shell completions. Bash has some default completion behavior, which is why you can type hel<TAB> and end up with help . It is also possible to add additional completion scripts which define the completion behavior for…
Common Lisp: Numbers
A collection of examples of how to use Common Lisp
When FP? And When OOP? (2013)
Very roughly speaking, functional programming (“FP”) and object-oriented programming (“OOP”) have similar levels of expressive power and similar abilities to encapsulate programs into smaller parts that can be combined and recombined.
Asynchronous Programming in Rust
Asynchronous programming in Rust continues to make exciting strides, including the upcoming stabilization of the futures API . But, while these core APIs make it possible to write async Rust code today, it's not easy: it's a far cry from the smoothness of synchronous code.
Go 2018 Survey Results
What we learned from the December 2018 Go User Survey.
Jumping Back and Forth
The order that our mind imagines is like a net, or like a ladder, built to attain something. But afterward you must throw the ladder away, because you discover that, even if it was useful, it was meaningless.
Erlang OTP 21.3
The official home of the Erlang Programming Language
Love It or Hate It, Java Continues to Evolve
Simon Ritter, Deputy CTO of Azul, covers evolutions in Java including, 6-month release cycle, a change to the switch expression in JDK 13 and more.
Error Handling in Go (2016)
Two commonly perceived problems of the programming language Go are that handling errors is verbose and repetitive parametric polymorphism is not available This post is about the intersection of those problems and Rob Pike’s recommendation on the former.
The Road to Valhalla
The goal of Project Valhalla is to bring more flexible flattened data types to JVM-based languages, to bring the programming model back in line with the performance characteristics of modern hardware. The core feature is inline classes (known previously as value types ), but such a fundamental perturbation of the JVM…
Developing a Statically Typed Programming Language (2017)
In this blog post we’ll go through a sample implementation of a type checker, interpreter and a transpiler for a basic purely functional programming language, which is based on the lambda calculus. We will do a “full-stack” programming language development by going through formal definition of the language’s syntax…
Why async fn in traits are hard
After reading boat’s excellent post on asynchronous destructors , I thought it might be a good idea to write some about async fn in traits. Support for async fn in traits is probably the single most common feature request that I hear about. It’s also one of the more complex topics. So I thought it’d be nice to do a…
Ruby Lazy Enumerators
Ruby provides support for lazy loading enumerators, allowing efficient processing of large or infinite sequences.
VxWorks now with C++17 and Rust support, alongside Ada and SPARK
Wind River announces Wind River Professional Services has been appraised at Level 3 of the CMMI® Institute’s Capability Maturity Model Integration.
TypeScript 3.7: The Biggest Features and How to Use Them
The TypeScript 3.7 release is coming soon, and it's going to be a big one. The target release date is November 5th, and there's some seriously exciting...
Crystal 0.31
Crystal 0.31.0 has been released!
Let's Build a Simple Interpreter. Part 14: Nested Scopes (2017)
Only dead fish go with the flow. As I promised in the last article, today we’re finally going to do a deep dive into the topic of scopes. This is what we’re going to learn today: We’re going to learn about scopes, why they are useful, and …