New
The latest blog posts to take off on Hacker News. 375 posts.
The compiler is your best friend
The compiler is a powerful tool, yet many developers have a painful relationship with it. Can we do better?
C++ says “We have try... finally at home”
The destructor serves as the "finally".
Easel Turns One One year of building my own IDE in Clojure
Easel is an IDE written in Clojure that I've been working on for the last year. See it in action https://youtu.be/sceGtaNHxcM .
Odin: Moving Towards a New "core:OS"
The rationale and transition period to moving to the new “core:os”
Ruby 4.0.0
We are pleased to announce the release of Ruby 4.0.0.Ruby 4.0 introduces “Ruby Box” and “ZJIT”, and adds many improvements.
The Algebra of Loans in Rust
The heart of Rust borrow-checking is this: when a borrow is taken, and until it expires, access to the borrowed place is restricted. For example you may not read from a place while it is mutably borrowed.
How GNU Guile is 10x better (2021)
In Rust at Facebook by Fitzhardinge of the Mercurial team , Jeremy says that a new language must be 10x better at something than one of the (other) incumbent languages.
Ruby website redesigned
A Programmer's Best Friend
Rust's Block Pattern
Here’s a little idiom that I haven’t really seen discussed anywhere, that I think makes Rust code much cleaner and more robust.
Rust GCC backend: Why and how
Blog of Guillaume Gomez (Rust GCC backend: Why and how)
Compiler Engineering in Practice
“Compiler Engineering in Practice” is a blog series intended to pass on wisdom that seemingly every seasoned compiler developer knows, but is not systematically written down in any textbook or online resource. Some (but not much) prior experience with compilers is needed.
I tried Gleam for Advent of Code
A 12 day Advent of Code year convinced me Gleam is the real deal, thanks to Rust-like errors, great pipes, and surprisingly ergonomic FP.
In Defense of Matlab Code
MATLAB still shines for math-heavy work. Its whiteboard-style syntax makes code easy to read, review, and run on modern tools like RunMat and fast GPUs.
The Cost of a Closure in C
I had a vague idea that closures could have a variety of performance implications; I did not believe that so many of the chosen and potential designs for C and C++ extensions ones, however, were so…
Factor 0.101 now available
“Keep thy airspeed up, lest the earth come from below and smite thee.” - William Kershner
Common Lisp, ASDF, and Quicklisp: packaging explained
Common Lisp has good packaging tools, but they're different. Here we explain the what and how.
Revisiting "Let's Build a Compiler"
There's an old compiler-building tutorial that has become part of the field's lore: the Let's Build a Compiler series by Jack Crenshaw (published between 1988 and 1995).
Go Proposal: Secret Mode
Automatically erase memory to prevent secret leaks.
Scala 3 slowed us down?
Is this clickbait? Not really. Is this the fault of the language or the compiler? Definitely not. Rather, it was part of a rushed migration. Sharing the lessons learned in the process.
Java Hello World, LLVM Edition
After exploring Java bytecode in previous years (2022, 2023, 2024), this year we’ll take an unexpected detour for a Java advent: instead of generating Java bytecode, we’ll use Java to build and execute LLVM IR, the intermediate language behind compilers like clang. Using Java’s Foreign Function & Memory (FFM) API…
Eurydice: a Rust to C compiler
Perhaps the greatest surprise of the last two years was, for me, the realization that people not only care about compiling C to Rust (for obvious reasons, such as, ahem, memory safety) – they also care about compiling Rust to C! Wait, what?
Perl's decline was cultural
There's been a flurry of discussion on Hacker News and other tech forums about what killed Perl. I wrote a lot of Perl in the mid 90s and subsequently worked on some of the most trafficked sites on the web in mod_perl in the early 2000s, so I have some thoughts. My take: it was mostly baked into the culture. Perl grew…
Patterns for Defensive Programming in Rust
I have a hobby. Whenever I see the comment // this should never happen in code, I try to find out the exact conditions under which it could happen. And in 90% of cases, I find a way to do just that. More often than not, the developer just hasn’t cons…
Thoughts on Go vs. Rust vs. Zig
What do each of these languages value most?
Golang's big miss on memory arenas
When your software team needs to pick a language today, you typically weigh two factors: language performance and developer velocity.
Progress on TypeScript 7 – December 2025
Earlier this year, the TypeScript team announced that we've been porting the compiler and language service to native code to take advantage of better raw
Nimony (Nim 3.0) Design Principles
Nimony is a new compiler for a variant of Nim which will become Nim 3.0, eventually. However, Nim is a big language so replicating what it does will take its time.
Response to "Ruby Is Not a Serious Programming Language"
[5 min read] The question Sheon Han poses — “Is Ruby a serious programming language?” — says a lot about what someone thinks programming is supposed to fee...