Most cited
Posts that commenters keep linking to, ranked by how many different people have cited them in Hacker News comments. 32 posts.
Dijkstra On the foolishness of "natural language programming"
Since the early days of automatic computing we have had people that have felt it as a shortcoming that programming required the care and accuracy that is characteristic for the use of any formal symbolism. They blamed the mechanical slave for its strict obedience with which it carried out its given instructions, even…
Ruby website redesigned
A Programmer's Best Friend
Go Data Structures: Interfaces (2009)
Go's interfaces—static, checked at compile time, dynamic when asked for—are, for me, the most exciting part of Go from a language design point of view. If I could export one feature of Go into other languages, it would be interfaces.
A 10x Faster TypeScript
Embarking on a native port of the existing TypeScript compiler and toolset to achieve a 10x performance speed-up.
Problems with Go channels (2016)
Update: If you’re coming to this blog post from a compendium titled “Go is not good,” I want to make it clear that I am ashamed to be on such a list. Go is absolutely the least worst programming language I’ve ever used. At the time I wrote this, I wanted to curb a trend I was seeing, namely, overuse of one of the more…
Modern C
This new edition has been the occasion to overhaul the presentation in many places, but its main purpose is the update to the new C standard, C23 . The goal was to publish this new edition of Modern C at the same time as the new C standard goes through the procedure of ISO publication. The closest approximation of the…
(On | No) Syntactic Support for Error Handling
Go team plans around error handling support
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.
The Language Construction Kit (1996, 2012)
Caja de herramientas para construir idiomas (en español; traducido por Renato Montes) O Kit de Construção de Línguas (em português; traduzido por Gustavo Pereira) Il Kit di Costruzione di Linguaggi (in italiano; tradotto per Daniele "MadMage" Calisi) Der Sprachbaukasten (auf Deutsch; übersetzt von Carsten Becker)
The Expression Problem and its solutions (2016)
The craft of programming is almost universally concerned with different types of data and operations/algorithms that act on this data [1] . Therefore, it's hardly surprising that designing abstractions for data types and operations has been on the mind of software engineers and programming-language designers since…
The Green Tea Garbage Collector
Go 1.25 includes a new experimental garbage collector, Green Tea.
Past, present, and future of Sorbet type syntax
A discussion of how Sorbet's type syntax came to be, the problems it solves, and how it could improve.
Pretty State Machine Patterns in Rust (2016)
A computer scientist working in open source towards a more hopeful future.
Performance of the Python 3.14 tail-call interpreter
A deep dive into the performance of Python 3.14's tail-call interpreter: How the performance results were confounded by an LLVM regression, the surprising complexity of compiling interpreter loops, and some reflections on performance work, software engineering, and optimizing compilers.
Things Zig comptime won't do
Es el disco de Odín. Tiene un solo lado. En la tierra no hay otra cosa que tenga un solo lado.
Forth: The programming language that writes itself
An exploration of the evolution and meaning of the Forth programming language and its context in history.
Self-hosted x86 back end is now default in debug mode
This page contains entries for the year 2025 . Other years are available in the Devlog archive page .
Easy Forth (2015)
This small ebook is here to teach you a programming language called Forth. Forth is a language unlike most others. It’s not functional or object oriented, it doesn’t have type-checking, and it basically has zero syntax. It was written in the 70s, but is still used today for certain applications .
A tail calling interpreter for Python (already landed in CPython)
It’s been nearly four years since I published Parsing Protobuf at 2+GB/s: HowI Learned To Love Tail Calls inC.In that article, I presented a technique I co-d...
Zig 0.15.1
Zig is a general-purpose programming language and toolchain for maintaining robust , optimal , and reusable software.
Go is still not good
Previous posts Why Go is not my favourite language and Go programs are not portable have me critiquing Go for over a decade.
Rust’s dependencies are starting to worry me
I do not pretend to have more experience or understanding than the top level engineers I often see writing blogs here, but what I am is annoyed. I love rust. It's by far my favorite language, I enjoy the community and the language ergonomics. I've been able to incorporate it into projects in my day job where fit.
A new experimental Go API for JSON
Go 1.25 introduces experimental support for encoding/json/jsontext and encoding/json/v2 packages.
Obvious things C should do
Standard C undergoes regular improvements, now at C23. But there are baffling things that have not been fixed at all. The Dlang community embedded a C compiler in the D programming language compiler so it could compile C. This C compiler (aka ImportC ) was built from scratch. It provided the opportunity to use modern…
Swift at Apple: Migrating the Password Monitoring Service from Java
Swift is heavily used in production for building cloud services at Apple, with incredible results. Last year, the Password Monitoring service was rewritten in Swift, handling multiple billions of requests per day from devices all over the world. In comparison with the previous Java service, the updated backend…
Cancellations in async Rust
Correctness in the face of cancellations: a written version of my talk at RustConf 2025.
Zig's Lovely Syntax
It's a bit of a silly post, because syntax is the least interesting detail about the language, but, still, I can't stop thinking how Zig gets this detail just right for the class of curly-braced languages, and, well, now you'll have to think about that too.
What about K?
k is a family of concise, fast vector-oriented languages designed by Arthur Whitney . Calling k a “family” is deliberate; there is no single definitive k, but instead a sequence of slightly incompatible versions. If you decide to stick with k, you’ll see mentions of k4 , k5 etc. Exactly what those numbers mean aren’t…