Skip to content
HomeVideosBooks
AllTopicsTrends
BlogsPodcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K
    Cover of Writing An Interpreter In Go

    Writing An Interpreter In Go

    Thorsten Ball · 2018

    Computer ScienceProgramming
    Open LibraryAmazon
    Stats for nerds
    73recommend
    107mentions
    90people
    2016–2026years
    81% recommend17% neutral2% critical

    Mentions per year

    201620182020202220242026

    What Hacker News says

    1. prologicOct 2026
      I still think the best books on interpreter and compiler implemtnations are the books by Thorsten Ball:

      - Writing an Interpreter in Go [1]

      - Writing a Compiler in Go [2]

      Absolutely best books I've ever read on the subject. And if you like to follow a step-by-step (each commit is a part of the boks) feel free to clone my own monkey-lang that followed the books pretty closely: https://git.mills.io/prologic/monkey

      [1] https://interpreterbook.com/

      [2] https://compilerbook.com/

      thread
    2. AlexeyBrinOct 2026
      These two are good books, I worked through "Writing an Interpreter in Go" and I liked the approach.

      Another really good book is "Crafting Interpreters".

      thread
    3. stevekempApr 2026
      Crafting Interpreters is a good recommendation, and in the same spirit "Writing an Interpreter in Go" (and it's followup about writing a virtual machine) is a good addition.

      A lot of the complexity and front-work of these kinda things is the parsing step though, so you can follow MAL (or any other make a lisp tutorial) though that won't necessarily help with other languages it frees you to jump to the interesting parts.

      FORTH, mentioned in another comment, has that same appeal. I wrote a quick tutorial here, back in the day:

      https://github.com/skx/foth

      thread
    4. seg_lolDec 2025
      There is a good body of literature that is distinct from the academic compiler literature.

      https://t3x.org/

      https://compilerbook.com/

      https://interpreterbook.com/

      https://www.craftinginterpreters.com/

      R. G. Loeliger Threaded Interpretive Languages Their Design And Implementation https://news.ycombinator.com/item?id=43973544

      https://github.com/IUCompilerCourse/Essentials-of-Compilatio...

      And check out Andy Keep's Nanopass Compiler work, https://nanopass.org/

      thread
    5. thw_9a83cOct 2025
      I understand. I wasn't a Java person when I read that book, yet I still prefer Java over more esoteric options. If Golang is easier for you to understand (no OOP), then I can recommend this one:

      https://interpreterbook.com/

      BTW, I'm not the author of either of those books, but I have read both of them.

      thread
    6. maxmynter95Jul 2025
      As a self-taught dev I'm constantly trying to achieve two things:

      1) Getting better at my tools or learning new ones 2) Make up for the theory I didn't learn in uni.

      Usually, those two things are somewhat distinct. I'm either there using a textbook, grokking theory, or I'm getting the reps in at a new programming language or K8s or whatever.

      I was wondering if there is a way to do both at the same time.

      Of course there are trade offs, but I found porting software, interspersed with theory to be a great way to achieve that.

      Naturally, you cover less theory than when you only do reading, and with the hand-holding you may learn less than when you use a tool you're good at to learn by trial and error.

      But for me, following "Writing an Interpreter in Go" in Rust was a great way to learn more about Rust and about programming languages and Interpreters at the same time.

      Did you try this or something else that helped you to maximise skill gain per unit time?

      (I know this sounds like an engagement throwaway question at the end, but I'm genuinely curious!)

      thread

    Related

    Cover of Writing A Compiler In Go
    2016–2026

    Writing A Compiler In Go

    Thorsten Ball
    33 recommend · 42
    Cover of Crafting Interpreters
    2017–2026

    Crafting Interpreters

    Robert Nystrom
    295 recommend · 521
    Cover of The Go Programming Language
    2015–2026

    The Go Programming Language

    Alan A. A. Donovan
    40 recommend · 100
    Cover of Mazes for programmers
    2018–2026

    Mazes for programmers

    Jamis Buck
    19 recommend · 28
    Cover of How to Design Programs
    2007–2026

    How to Design Programs

    Matthias Felleisen
    277 recommend · 776
    Cover of Code
    2008–2026

    Code

    Charles Petzold
    243 recommend · 385
    Cover of Structure and Interpretation of Computer Programs
    2007–2026

    Structure and Interpretation of Computer Programs

    Harold Abelson
    347 recommend · 761
    An Introduction to Programming in GoCaleb Doxsey
    2012–2018

    An Introduction to Programming in Go

    Caleb Doxsey
    11 recommend · 13