Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,709 posts.
Improved Error Handling in Rust
Overview of how to handle errors in the current version of the Rust programming language.
A new way to think about borrow checking (in reverse)
Have you ever had a weird idea, and then it worked, but you can't really believe it?
Let's Build a Compiler (1988)
This series of articles is a tutorial on the theory and practice of developing language parsers and compilers. Before we are finished, we will have covered every aspect of compiler construction, designed a new programming language, and built a working compiler.
Where Tcl and Tk Went Wrong (2010)
I’ve been pondering this subject for a while, and I think I’m finally ready to write about it. Tcl was, for many years, my go-to language of choice. It’s still near and dear to me…
The Problem with F# Evangelism
There seems to be a constant struggle to convince seasoned C# developers to give F# a try. Which is a pity because language and concepts deserve better.
Java 20: A Sneak Peek on the Panama FFM API
A blog about Java
Context should go away for Go 2 (2017)
As usual, when a new blog post comes out on blog.golang.org, I’m all eager to read it as soon as possible. The most recent one, Contributors Summit, is a nice write-up on the issues that the Go contributors have been talking about. While reading it, I stumbled upon a sentence that made me write this post. Here is is…
400 days of Go
It's been 418 days since my first Github commit of Go code. In that time I've written a Syslog-to-Kafka producer, a Raft-based distributed SQLite database, a near real-time log search system, and become a core developer of InfluxDB. So if there is one word to summarize Go, it's productive. I haven't had the same burst…
How not to teach recursion (2021)
Parenthetically Speaking: Articles by Shriram Krishnamurthi
Significant features introduced for recent versions of Perl
History of Perl releases since version 5.6, each with a summary of added or changed features.
The Prolog Story (2010)
I’ve told this story in person dozens of times, it’s time to write it down and share it here. I’ve again experimentally recorded a video version (below), which you can view on a non-Flash device here .
Rust's Sneaky Deadlock With `if let` Blocks
Rust is my favorite programming language. I've been writing Rust for about 6 years, from college to professionally, and I'm vocal about how helpful the compi...
Scalable Program Architectures
How to design resilient architectural patterns that last the test of time
My Favorite C++ Pattern: X Macros (2023)
In this post, I talk about my favorite C/C++ pattern involving macros.
Shape typing in Python
While I was looking the other way, Python got advanced static types! Here’s matrix multiplication, describing the input shapes and its output shape:
Where does the name "algebraic data type" come from?
A blog about functional programming
The Defer Technical Specification: It Is Time
After the Graz, Austria February 2025 WG14 Meeting, I am now confident in the final status of the defer TS, and it is now time.
Go vgo: Semantic Versioning and Human Error
What happens when human error enters into semantic versioning and vgo
Opaque Types in Python
A proposed technique for exposing an opaque data structure with idiomatic modern Python.
R7RS versus R6RS (2018)
InPhase asked today on #scheme about the R7RS vs R6RS debate. I followed the original debate closely and have experience both using and implementing R6RS. I also recently added R7RS support in Akku.scm 0.3.0, so I feel like I can weigh in on this. It’s a topic that many feel passionately about, and I’m also firmly on…
The Joy of Erlang; Or, How to Ride a Toruk (2011)
In the movie Avatar , there’s this big badass bird-brained pterodactyl thing called a Toruk that the main character must learn to ride in order to regain the trust of the blue people. As a general rule, Toruks do not like to be ridden, but if you fight one, subdue it, and then link your Blue Man ponytail to the…
Common Lisp and Music Composition
Once upon a time, there were many music composition software packages, mostly written in Common LISP. To name a few I know, Common Music, Symbolic Composer (not related to the Symbolics Lisp Machine). Common Music is still available in source code but I doubt if anyone is still able to setup that. Symbolic Composer…
Compiling a Lisp to x86-64: Let expressions
Compiling Lisp let expressions to x86-64