Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
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
    A

    Adam Tornhill

    adamtornhill.com · Personal blog · on HN since 2015

    Adam Tornhill, a software developer and author, writes about code analysis, Lisp, Smalltalk, and book reviews.

    Visit blogRSSHN submissions
    ProgrammingLanguages & Compilers
    What HN says

    HN links it for his "Code as a Crime Scene" work on measuring code complexity, a FizzBuzz C++ compiler errors piece, and his metaobject protocol review.

    Stats for nerds
    25HN people shared it
    19linked in comments
    473story points
    Apr 2026last shared
    2015people per year2026

    Top posts on HN

    1. 1
      Code quality only matters in context (2019)
      1 person · 128 points · first shared 2022 · 74 comments on HN
    2. 2
      Manipulate Functions with the J Language
      3 people · 116 points · first shared 2017 · 31 comments on HN
    3. 3
      Lisp for the Web (2008)
      5 people · 110 points · first shared 2015 · 34 comments on HN
    4. 4
      Learning Smalltalk from “Pharo by Example”
      1 person · 58 points · first shared 2015 · 19 comments on HN
    5. 5
      Kill the Clones: Temporal Coupling Finds Design Problems in Large-Scale Systems
      1 person · 29 points · first shared 2015 · Discussion on HN
    6. 6
      Programming Like It's 1977
      1 person · 17 points · first shared 2024 · 1 comments on HN
    7. 7
      My Five Worst Bugs: Lessons Learned in System Design
      2 people · 6 points · first shared 2018 · Discussion on HN
    8. 8
      Code as a Crime Scene (2013)
      4 people · 2 points · first shared 2021 · Discussion on HN
    9. 9
      The Art of Metaobject Protocol Book Review (2014)
      4 people · 2 points · first shared 2020 · Discussion on HN
    10. 10
      Book Review: The Apollo Guidance Computer: Architecture and Operation
      1 person · 2 points · first shared 2016 · Discussion on HN

    What HN people wrote when they linked it

    • dahjelleJul 2024

      I've been wanting to try something like this for a long time! Is there any way to sign up for updates?

      (In particular, I'm waiting for the option to turn off the AI stuff, at least for when I am trying things out.)

      I especially love the ability to zoom into a function and hide the rest of a file. I've wanted that sort of thing a surprising number of times. I'm thinking one could also use this to virtually rearrange a single file by pulling the functions in that file that you are working on next to each other easily?

      In addition to the editing interface, I think there are probably a lot of visualization opportunities in editors:

      - what's the interaction between my code and third-party dependencies? - what are the dependencies/call graph of my code? or perhaps just a portion of it? - call graphs can be nested — perhaps you care for a dependency graph at the class or module level, or perhaps you want to "drill down" into the call graph inside an object

      In all these cases, being able to seamlessly transition between the visualization and editing — like you seem to be aiming towards — seems like the killer feature.

      And, of course, there are lot of other interesting visualization opportunities once you have any sort of graphics in your editor:

      - heatmaps of code churn - heatmaps of code performance - tracing variable usage - and, of course, lots more (https://adamtornhill.com/articles/crimescene/codeascrimescene.htm)

      One last thought: if you haven't read _The Programmer's…

    • jauntywundrkindAug 2023

      One of the core points about metaobject protocols is that while it's important to language design, a good language to me also exposes & makes flexible the object system to users of the language too.

      From a review (https://www.adamtornhill.com/reviews/amop.htm),

      > The metaobject protocol behaves like an interface towards the language itself, available for the programmer to incrementally customize. Just as we can specialize and extend the behavior of the classes we define in our own applications, we can now extend the language itself using the very same mechanisms.

      One of the points that has rather surprised me is that we devs have not more broadly explored what we could do with our metaobject protocols. We havent had a boom in metaprogramming, we haven't seen a largescale return of AOP; we've been letting objects stay dumb unextended objects for a long time now.

      The one sizable exception I have on my radar is React's Higher Order Components, where components/classes were wrapped/composed in other classes. Slices of object behavior were spliced into place.

      Now that's replaced with hooks, which invert the relationship, making the function up front composed all behavior it might want as hooks that it calls.

      I don't know enough about how Rust macros are made & used. My vague impression is they are very scarcely considered. Maybe I just missed the discussions but I'd expect there to be lots of blogging about this topic if metaprogramming here was really as fertile a field…

    • vram22Dec 2016

      >Does anyone here use any lisp for Web Development?

      Saw this recently:

      http://www.adamtornhill.com/articles/lispweb.htm

      It might be useful, even though is from 2008, if it focuses on fundamentals.

      Saved it for later reading, since I'm not learning Lisp currently, though had read a part of the Practical Common Lisp book earlier. (Had liked what I read of it.)

    • CaiGengYangAug 2015

      detaro,

      Just going through the exercises in this book by Paul Graham : http://ep.yimg.com/ty/cdn/paulgraham/onlisp.pdf. --- There doesn't seem to be anything in there about web development for Lisp though ...

      Also saw this book on static web development by Adam Tornhill : http://www.adamtornhill.com/articles/lispweb.htm --- do you think this will help ?

    • youknownothingApr 2026

      I like the mindset, it reminds me of "Your code as a crime scene" by Adam Tornhill:
      https://www.adamtornhill.com/articles/crimescene/codeascrimescene.htm

      Also, very tangentially, to the notion of the Developer's Legacy Index:
      https://www.javaadvent.com/2021/12/using-jgit-to-analyse-the-legacy-of-individual-developers.html

    • jonahbentonFeb 2021

      They do but those aren't made available to you like a database, just through their search tool and indirectly through their contextual lookups.

      See also tools that build databases from code history, like

      https://www.adamtornhill.com/articles/crimescene/codeascrimescene.htm

    Related

    Rainer Joswiglispm.de21 people

    Ergonomics of the Symbolics Lisp Machine

    Rainer Joswig
    Personal · last shared 2025
    Wilfred Hugheswilfred.me.uk42 people

    Difftastic, the fantastic diff

    Wilfred Hughes
    Personal · last shared 2026
    Allen Wirfs-Brockwirfs-brock.com40 people

    The Rise and Fall of Commercial Smalltalk

    Allen Wirfs-Brock
    Personal · last shared 2026
    Smalltalk Talkmedium.com/smalltalk-talk20 people

    Pharo, the Modern Smalltalk

    Smalltalk Talk
    Publication · last shared 2024
    Cincom Smalltalk Blogcincomsmalltalk.com44 people

    Smalltalk: Our Death has been Exaggerated

    Cincom Smalltalk Blog
    Personal · last shared 2026
    Richard Gabrieldreamsongs.com353 people

    The Art of Lisp and Writing (2003)

    Richard Gabriel
    Personal · last shared 2026
    Tim Bradshawtfeb.org20 people

    The lost cause of the Lisp machines

    Tim Bradshaw
    Personal · last shared 2025
    Lambda the Ultimatelambda-the-ultimate.org615 people

    Simon Peyton Jones Elected into the Royal Society Fellowship

    Lambda the Ultimate
    Publication · last shared 2026