Work in progress: 82,651 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #90

J

journal.stuffwithstuff.com

Personal blog · journal.stuffwithstuff.comprogramming

journal.stuffwithstuff.com is a personal blog at journal.stuffwithstuff.com about programming. Since 2008, 396 different Hacker News readers have linked it 608 times, most often “What color is your function? (2015)”. It is still writing: the last post was on 2026-01-24, and you can follow it by feed.

Visit the blog
608mentions?
11recommend?
396HN people?
2008–2026first – last linked?
Links on Hacker News per year · peak 69 in 2020

Sometimes recommended · 11 of 40 sampled comments recommend it?

Why HN links it

HN readers link Bob Nystrom's blog (Crafting Interpreters, Game Programming Patterns author) for his "What Color is Your Function" essay on async/await and for posts on garbage collection, book layout and language design.

Recommended for · 11 comments
Commenters call the Game Programming Patterns book the best technical book one read, call the author an amazing writer, say the Crafting Interpreters illustrati

Summarised by Claude from a sample of 40 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. What color is your function? (2015)
    127 people · 146 mentions · first linked 2019-04-30
  2. What Color is Your Function? (2015)
    69 people · 87 mentions · first linked 2015-02-02
  3. JavaScript Isn't Scheme
    20 people · 27 mentions · first linked 2013-07-19
  4. Pratt Parsers: Expression Parsing Made Easy
    18 people · 21 mentions · first linked 2011-03-19
  5. Baby's First Garbage Collector
    16 people · 22 mentions · first linked 2013-12-08
  6. The Hardest Program I've Ever Written – How a code formatter works (2015)
    15 people · 21 mentions · first linked 2015-09-09
  7. Crafting "Crafting Interpreters" (2020)
    10 people · 10 mentions · first linked 2021-07-29
  8. Baby’s First Garbage Collector (2013)
    9 people · 12 mentions · first linked 2019-11-30
  9. The hardest program I've ever written (2015)
    9 people · 10 mentions · first linked 2023-12-29
  10. Crafting “Crafting Interpreters”
    9 people · 9 mentions · first linked 2020-04-05

What Hacker News says?

  1. (To set the tone clearly - this seems like an area where you know a _lot_ more than me, so any questions or "challenges" below should be considered as "I am probably misunderstanding this thing - if you have the time and inclination, I'd really appreciate an explanation of what I'm missing" rather than "you are wrong and I am right") I don't know if you're intentionally using "colour" to reference https://journal.st…

    Comment linking /2015/02/01/what-color-is-your-function/

    on “Niklaus Wirth has died”
  2. Submitted Crafting “Crafting Interpreters” as a story · 777 points

    HN discussion
  3. Well, in the case of windows, I recall that maintaining backward compatibility with a variety of applications required a knowledge of the resource demands of each of those applications, with those applications each operating in a different domain. Similarly, creating memory allocators is something of a "black art" - it's a matter of generically good allocator but one which doesn't generate fragmented memory in "norm…

    Comment linking /2015/09/08/the-hardest-program-ive-ever-written/

    on “The Stuxnet worm may be the most sophisticated software ever written”
  4. Submitted The Hardest Program I've Ever Written – How a code formatter works (2015) as a story · 500 points

    HN discussion
  5. async/await is nice syntax, but it doesn't change the fundamental difference between synchronous and asynchronous code and the viral nature of async functions. Sync functions cannot properly compose async functions in general. A great essay on this is "What Color is Your Function": http://journal.stuffwithstuff.com/2015/02/01/what-color-is-y...

    Comment linking /2015/02/01/what-color-is-your-function/

    on “Node v4.0.0”
  6. Submitted What Color Is Your Function? as a story · 410 points

    HN discussion
  7. Yup. See https://journal.stuffwithstuff.com/2015/02/01/what-color-is-... for a pretty good explanation of the async/await problem. I know Rust is all about zero-cost abstractions, "but at what cost" beyond just runtime cost? I appreciate their principled approach to mechanical sympathy and interop with the C abstract machine, but I'm just not enthused about this particular tradeoff. An alternative design would have…

    Comment linking /2015/02/01/what-color-is-your-function/

    on “Async-await on stable Rust”
  8. Submitted Rooms and Mazes: A Procedural Dungeon Generator as a story · 332 points

    HN discussion
  9. I also think async (the paradigm) is kind of weird in rust world. I agree with https://journal.stuffwithstuff.com/2015/02/01/what-color-is-... .

    Comment linking /2015/02/01/what-color-is-your-function/

    on “Async-await on stable Rust”
  10. Submitted The Hardest Program I've Ever Written (2015) as a story · 303 points

    HN discussion
  11. That's very nice, but saying it's strictly superior to async/await is a stretch. Fibers/stackful coroutines are a different approach with its own tradeoffs. On the plus side, fibers offer almost painless integration of synchronous code, while async/await suffer from the "colored functions" problem[1]. The price you pay for that, is the higher overhead of having to allocate stacks. If you don't support dynamic stacks…

    Comment linking /2015/02/01/what-color-is-your-function/

    on “IT Runs on Java 8”
  12. Submitted How I wrote Game Programming Patterns as a story · 290 points

    HN discussion
  13. > Munificent's http://journal.stuffwithstuff.com/2015/02/01/what-color-is-y... . expresses the problem eloquently. I have several issues with that blog post. 1. The performance concerns are glossed over. The conclusion is "threads are superior", but that ignores the reason why we want async I/O in the first place : performance. 2. "What if the new place you want to call it is blue? You’ll have to turn it red." is fa…

    Comment linking /2015/02/01/what-color-is-y..

    on “Zero-cost futures in Rust”
  14. Submitted Crafting Interpreters: 640 Pages in 15 Months as a story · 264 points

    HN discussion
  15. I think there's little or no evidence that "you can recover most of the M:N ergonomics over time via async/await style syntax" , despite a decade or so of attempts. I think there's an underlying semantic concern that seems unsugarable. Munificent's http://journal.stuffwithstuff.com/2015/02/01/what-color-is-y... expresses the problem eloquently. None of that means you're wrong about async making "a lot more sense for…

    Comment linking /2015/02/01/what-color-is-your-function/

    on “Zero-cost futures in Rust”
  16. Submitted The hardest program I've ever written (2015) as a story · 261 points

    HN discussion
  17. > Javascript isn't actually that bad of a language Well, the basic parts are not that great. Plus, it has almost nothing of Scheme (nothing more than e.g. Python has of Lisp), that's just an old wives tale. It just has closures and that's it. Scheme is a Lisp, whereas Javascript isn't [1]. Not sure what Brendan had in mind when he was inspired by Scheme, but the end product is nothing like it. Coercion rules are cra…

    Comment linking /2013/07/18/javascript-isnt-scheme/

    on “Go is Google's language, not ours”
  18. Submitted The Hardest Program I've Ever Written as a story · 242 points

    HN discussion
  19. I came here to say the same thing. Laying content out for a book comes with way more issues than "just" converting between document formats. Leanpub does it well out of the box. If you want to look down the path of implementing book layout yourself, here are two breadcrumbs from my bookmarks: https://journal.stuffwithstuff.com/2014/11/03/bringing-my-we... https://iangmcdowell.com/blog/posts/laying-out-a-book-with-c.…

    Comment linking /2014/11/03/bringing-my-web-book-to-print-and-ebook/

    on “Pandoc”
  20. Submitted Dropping Loot as a story · 236 points

    HN discussion
  21. red2awn · 2021-05-27Recommends
    Awesome technical and programming related blogs: https://eli.thegreenplace.net/ http://journal.stuffwithstuff.com/

    Comment linking /

    on “Ask HN: Favorite Blogs by Individuals?”
  22. Submitted Show HN: How I made the print and eBook versions of my web book as a story · 228 points

    HN discussion
  23. There was a very interesting submission to HN on why code formatting utilities aren't easy things to write, [0] called, The Hardest Program I've Ever Written [1] The code of Perl Tidy at least looks pretty good! [2]. Perhaps there's a reason why PPI isn't used, that I'm not famliar with, other than - as you say, it predates it. Perl::Critic uses PPI, yes? [0] https://news.ycombinator.com/item?id=10195091 [1] http://…

    Comment linking /2015/09/08/the-hardest-program-ive-ever-written/

    on “Larry Wall Unveils Perl 6.0.0”
  24. Submitted Baby's First Garbage Collector as a story · 217 points

    HN discussion
  25. gilmi · 2022-11-14Recommends
    CS4410 and CSE131 (they are very similar, pick one) for compilation: - https://course.ccs.neu.edu/cs4410sp21 - https://ucsd-cse131-f19.github.io These two articles for garbage collection: - http://www.more-magic.net/posts/internals-gc.html - http://journal.stuffwithstuff.com/2013/12/08/babys-first-gar...

    Comment linking /2013/12/08/babys-first-garbage-collector

    on “Ask HN: Do you recall any book or course that made a topic finally click?”
  26. Submitted Consider Knitting as a story · 197 points

    HN discussion
  27. I hand-drew the illustrations for my first book too, and I talk a little about the thought behind that here: http://journal.stuffwithstuff.com/2014/04/22/zero-to-95688-h...

    Comment linking /2014/04/22/zero-to-95688-how-i-wrote-game-programming-patterns/

    on “Crafting “Crafting Interpreters””
  28. Submitted JavaScript Isn't Scheme as a story · 197 points

    HN discussion
  29. Whether it's kernel threads or green threads, the same patterns (locks, etc) are possible. Locks are supposed to be the borrow checker's bread and butter, because it can guarantee they are held before accessing shared state. But now you're saying "the borrow checker makes writing code without [async/await] difficult, inefficient, and unergonomic." I'm not saying locks are better than async/await (although they are[1…

    Comment linking /2015/02/01/what-color-is-your-function/

    on “Tokio 1.0 – async runtime for Rust”
  30. Submitted How My Book Launch Went as a story · 184 points

    HN discussion

Search all of HN for journal.stuffwithstuff.com

Linked by the same people?