Blogs / Personal blogs

One of the reasons I write is to help me organize my own mind. I have a compulsive need to figure things out and I’ll lay awake at night shuffling sentences around in my head until it hangs together. Then I just have to try to get it all down in Markdown before it dissolves back into chaos.

Popular posts
18
Total points
4,545
HN comments
2,400
Rank
#262 personal

Visit journal.stuffwithstuff.com → RSS feedOn Hacker News Jul 2013 – May 2025

Software Engineering 15Programming Languages 8Life, Learning & Writing 4Games & Graphics 3Tools & Productivity 1Tech Industry & Business 1

2

Crafting Interpreters: 640 Pages in 15 Months

My book Crafting Interpreters on programming languages is done. OK, OK. I know I said it was done like fifteen months ago . But now it’s really done. And by that I mean, the print, e-book and PDF versions are done. You can buy it . You can hold it in your hands. And I do mean “hands” plural. Because this little…

4

JavaScript Isn't Scheme

It seems like I can’t spend five minutes on reddit these days without someone playing the JS-is-Scheme is card . I see everything from the innocuous, “JavaScript has a lot in common with Scheme”, all the way up to, “JavaScript is basically Scheme.” This is basically crazy. Or, at least it has a lot in common with…

5

Pratt Parsers: Expression Parsing Made Easy (2011)

Every now and then, I stumble onto some algorithm or idea that’s so clever and such a perfect solution to a problem that I feel like I got smarter or gained a new superpower just by learning it. Heaps were one, just about the only thing I got out of my truncated CS education. I recently stumbled onto another: Pratt or…

6

Does Go Have Subtyping?

I’ve been noodling on a static type system for my current hobby language. To try to keep the language as simple as possible, I’m trying to see if I can live without subtyping. Since most of my programming experience is in object-oriented languages, I’ve been learning more about languages that lack—or at least claim to…

8

Bootstrapping a Type System (2010)

Magpie has reached a strange but neat little milestone on the road from “weird experiment” to “real language”: the type system is now bootstrapped. I’m not aware of any other languages where a statement like that is even meaningful (maybe Typed Scheme ?), much less true , so I’ll try to break that down.