Top posts
Every blog post that took off on Hacker News, ranked by the votes of its best submission. 3,709 posts.
Four Months of Zig
It has been about four months since I returned to Zig after being absent for a few years. In this time, I have written some software in Zig and reengaged with the community, online and in person. I decided to share some of that experience, including what I have liked about Zig so far and what I haven't. I'll include…
Using Rust for 'Scripting'
Why I might use Rust instead of Python, with walkthroughs for building a simple
Beautiful ideas in programming: generators and continuations
Science, programming, books, and other interesting stuff
Rustgo: Calling Rust from Go with near-zero overhead (2017)
Go has good support for calling into assembly, and a lot of the fast cryptographic code in the stdlib is carefully optimized assembly, bringing speedups of over 20 times.
What causes Ruby memory bloat?
Ruby apps can use a lot of memory. But why? Various people in the community attribute it to memory fragmentation, and provide two “hacky” solutions. Dissatisfied by the current explanations and provided solutions, I set out on a journey to discover the deeper truth and to find better solutions.
Rust's unsafe pointer types need an overhaul
I literally wrote the book on unsafe Rust . And the book on pointers in Rust . And redesigned the Rust’s pointer APIs . And designed the standard library’s abstraction for unsafe heap-allocated buffers . And maintain the alternative Vec layout .
What is Hindley-Milner and why is it cool? (2008)
Anyone who has taken even a cursory glance at the vast menagerie of programming languages should have at least heard the phrase "Hindley-Milner". F#, one of the most promising languages ever to emerge from the forbidding depths of Microsoft Research, makes use of this mysterious algorithm, as do Haskell, OCaml and ML…
Teach Yourself Scheme in Fixnum Days (2015)
A practical introduction to the programming language Scheme
An Experimental New Type Inference Scheme for Rust
While on vacation, I’ve been working on an alternate type inference scheme for rustc. (Actually, I got it 99% working on the plane, and have been slowly poking at it ever since.) This scheme simplifies the code of the type inferencer dramatically and (I think) helps to meet our intutions (as I will explain). It is…
Safe C++ proposal is not being continued
One year ago, the Safe C++ proposal was made. The goal was to add a safe subset/context into C++ that would give strong guarantees (memory safety, type safety, …
R, the master troll of statistical languages (2012)
Warning: what follows is a somewhat technical discussion of my love-hate relationship with the R statistical language, in which I somehow manage to waste 2,400 words talking about a single line of …
What Made Lisp Different (2002)
(This article came about in response to some questions on the LL1 mailing list. It is now incorporated in Revenge of the Nerds .) When McCarthy designed Lisp in the late 1950s, it was a radical departure from existing languages, the most important of which was Fortran . Lisp embodied nine new ideas:
Python 3 in 2016
My completely anecdotal view on the state of Python 3 in 2016. Based on my own recent experience, observations, and exchanges with other members of the Python community.
Designing a Language (2017)
Of course you want to design (and implement!) your own programming language! It’s fun. It’s creative. It’s empowering.
Rambling On [PHP] Internals
This is a post that I didn’t want to write. Actually, it’s a post that I still don’t want to write. But I find myself in a situation where I feel that I have to say something. So I’m going to just ope
Softmax forever, or why I like softmax
[UPDATE: Feb 8 2025] my amazing colleague Max Shen noticed a sign mistake in my derivation of the partial derivative of the log-harmonic function below.
Valen's Memory Safety: A New Kind of Borrow Checking
You all know me, I love exploring new memory safety approaches and blending them together in weird ways.
Project Jigsaw: Complete
It’s been a long road, but at last the puzzle is complete: Today we delivered Project Jigsaw for general use, as part of JDK 9 .
Show HN: Clojure by Example
Clojure by Example
An Introduction to Type Level Programming in Haskell
Learn about type level programming by building a custom theming engine.