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
    M

    Mike Hearn

    blog.plan99.net · Personal blog · on HN since 2017

    Mike Hearn, a former Bitcoin and Google developer, writes about garbage collection, language design, Bitcoin, science replication, and COVID-19.

    Visit blogHN submissions
    Languages & CompilersSystems & PerformanceCrypto
    What HN says

    Commenters cite his modern garbage collection series to compare GC tradeoffs, including Java HotSpot versus Go, and his post on replication studies.

    Stats for nerds
    86HN people shared it
    58linked in comments
    2.6Kstory points
    Jun 2025last shared
    2017people per year2025

    Top posts on HN

    1. 1
      It’s time to kill the web app
      5 people · 1K points · first shared 2017 · 702 comments on HN
    2. 2
      The science of Westworld
      2 people · 277 points · first shared 2017 · 142 comments on HN
    3. 3
      Re: Moxie on Web3
      1 person · 209 points · first shared 2022 · 181 comments on HN
    4. 4
      In Defence of the Technical Interview
      4 people · 195 points · first shared 2019 · 294 comments on HN
    5. 5
      An obscure research project could accelerate innovation in language design
      8 people · 175 points · first shared 2017 · 45 comments on HN
    6. 6
      What should follow the web?
      3 people · 175 points · first shared 2017 · 168 comments on HN
    7. 7
      Modern garbage collection: Part 2
      7 people · 156 points · first shared 2019 · 91 comments on HN
    8. 8
      Building account systems
      2 people · 140 points · first shared 2017 · 56 comments on HN
    9. 9
      Kotlin doesn’t need an LLVM backend (2016)
      2 people · 80 points · first shared 2017 · 113 comments on HN
    10. 10
      Why not object capability languages?
      1 person · 78 points · first shared 2025 · 67 comments on HN

    What HN people wrote when they linked it

    • ZenoArrowJan 2018

      > "Which works great, as long as those DSLs are complete, standardized, and mostly not leaky. In the spirit of your comment, I'll let you discover for yourself why that doesn't seem to happen."

      Two reasons:

      1. Computing is a relatively young field, and not all of the best practices have made it to the mainstream.

      2. The quickest way to develop is to bolt additional code onto the side of a project rather than considering how the overall requirements for the software application may be better served by designing reusable helper functions and refactoring.

      Also, I think you've dismissed Red a little too quickly. The GUI DSL is not the only factor that keeps the codebase compact. I'm using the word "compact" rather than "small" as I recognise that Red is still in its infancy, but with the word "compact" I'm trying to emphasise that Red does a lot with not a lot of code.

      > "EDIT: As an aside, the Java 1.1 JVM was only about 15MB."

      How big was the JCL (Java Class Library) at the same time? Also, 15MB for a VM on its own is not that impressive. Even Oracle have managed to make small (feature complete) VMs, for example:

      https://blog.plan99.net/graal-truffle-134d8f28fb69

      "The resulting runtimes have peak performance competitive with the best hand-tuned language-specific compilers on the market. For example, the TruffleJS engine which implements JavaScript is competitive with V8 in benchmarks."

      "To give a feel for how easy it is to write these engines, TruffleJS is only about…

    • toast0Nov 2023

      > --- Most of the BEAM isn't well-suited for trends in today's immutable architecture world (Docker deploys on something like Kubernetes or ECS). Bootup time on the VM can be long compared to running a Go or OCaml binary, or some Python applications (I find larger Python apps tend to spend a ton of time loading modules). Compile times aren't as fast as Go, so if a fresh deploy requires downloading modules and compile-from-scratch, that'll be longer than other stacks. Now, if you use stateful deploys and hot-code reloading, it's not so bad, but incorporating that involves a bit more risk and specific expertise that most companies don't want to roll into. Basically, the opposite of this article

      I don't necessarily disagree with your reading of the trends, but if following the trends means losing the best tool for the job, maybe it's not the tool that's in the wrong. Re: deploy time, I don't think there's a need for deployed servers to fetch and compile modules --- you wouldn't do that for a Java or C server, you'd build an archive once and deploy the archive. I guess if you're talking about the speed of the build pipeline, I'd think the pieces in the build could be split into meaningful chunks so builds could be in parallel and/or only on the parts where the dependencies changed. I imagine BEAM startup itself isn't particularly fast at the moment, because I haven't seen a lot of changelogs about speeding it up, but I'm not sure there's a huge amount of perceived need there?…

    • uncletammyMay 2021

      > Well none of this has any effect on the bitcoin network now does it?

      After having been stripped of most of the functionality that gave BTC it's original value proposition, you might be surprised at the degree to which it really does need ads like this to attract fresh investors.

      BTC killed it's most powerful tool for cementing it's position as the leading cryptocurrency, it's network effect.

      They killed it by merging "full replace by fee", making it trivial to cheat bitcoin-accepting merchants during times of higher network congestion. This made it even super risky for merchants and many opted out. They even had a much safer alternative (FSS-RBF) ready to merge.

      * https://github.com/bitcoin/bitcoin/pull/6352

      * https://blog.plan99.net/replace-by-fee-43edd9a1dd6d

      They killed it by using the size of OP_RETURN to gaslight Counterparty, a company that was trying to build a rich smart contract ecosystem (yeah like Ethereum has now) on top of bitcoin. This was the second time the core devs' hatred of smart contracts killed new use cases for the coin. The first time led Vitalik to create Ethereum.

      *https://old.reddit.com/r/decred/comments/6wxueo/your_best_pitch_for_decred/dmcerna/

      They killed it by blanket censoring on all the big bitcoin related communication channels all discussion about increasing the blocksize and/or building/supporting alternative BTC full nodes. This censorship completely fractured the community and directly led to the network fork called…

    • candiodariFeb 2017

      > It is, of course, possible to create libraries that don't follow the idiom.

      Yeah. Thing is though, there are these libraries who access pointers (especially in Go where lots of stuff are implicit pointers, like maps and interfaces). Or, may God strike them down where they stand, people who use division. Or allocate. Or cast. Or use interface{}. All such code has implicit (non-visible) panics in them.

      What I mean to say is: in practice, Go code is not fundamentally different from Java/C++ code : everything can throw. Everything. Yes even that thing that you're thinking of right now that couldn't possibly ever think about throwing. There's just people who admit this and people who don't.

      That the Go authors come up with idioms that are so incredibly shortsighted is emblematic of everything else about the language.

      This is how Go works. They claim they are perfection, and know better than anyone.

      For instance, compare:

      https://blog.golang.org/go15gc

      with

      https://blog.plan99.net/modern-garbage-collection-911ef4f8bd8e

      (just to put up something other than the generics discussion. But everything about go suffers from both massive deficiencies and an extremely arrogant development defending deficiencies ...)

    • apeaceJul 2017

      For the past two years, the Bitcoin community has been embroiled in a debate about how to scale the network to handle more transactions. The debate has at times become less technical, rhetoric about "centralization" and the values of the community has become introduced, etc. Recently the debates have come to a head, and some have referred to it as a "Civil War"[0].

      For technical background, I recommend these two posts by Mike Hearn, who has since left the Bitcoin community [1] [2]

      Now, what the original article is talking about is the "Core" development team--the people who have commit access on the Bitcoin Github repo. The whole debate has essentially become Core vs. some other factions, mainly miners. You'll see the arguments in [1] and [2].

      (Keep in mind, Mike Hearn is strongly on the anti-Core side of the argument. But those articles should give you an idea of what to search for, if you want to hear arguments on the other side.)

      [0] https://www.bloomberg.com/news/articles/2017-07-10/bitcoin-risks-splintering-as-civil-war-enters-critical-month

      [1] https://medium.com/@octskyward/on-consensus-and-forks-c6a050c792e7

      [2] https://blog.plan99.net/the-resolution-of-the-bitcoin-experiment-dabb30201f7

    • jamoesDec 2020

      I'm curious why you chose to use the term "bcash" to refer to BCH. No exchanges or mainstream projects use that term to refer to BCH. As far as I'm aware it's primarily used as a pejorative, so it seems strange that you'd use it here.

      As far as BCH's additional value: I'd suggest researching the block size debate. This debate is BCH's entire reason for existing. This article [1] from 2016 by Mike Hearn contains a good primer on the block size debate itself. He ended up quitting development of Bitcoin, but others decided to raise the blocksize limit - with or without the majority, thus creating BCH. Succinctly, BCH is the continuation of big-blocker's vision of the Bitcoin experiment.

      [1] https://blog.plan99.net/the-resolution-of-the-bitcoin-experiment-dabb30201f7

    Related

    jwzjwz.org880 people

    Watch a VC use my name to sell a con

    jwz
    Personal · last shared 2026
    LessWronglesswrong.com2.4k people

    The Best Textbooks on Every Subject

    LessWrong
    Publication · last shared 2026
    Coding Horrorblog.codinghorror.com2.1k people

    Farewell Stack Exchange

    Coding Horror
    Personal · last shared 2026
    Aphyraphyr.com551 people

    Hexing the technical interview (2017)

    Aphyr
    Personal · last shared 2026
    Ed Zitronwheresyoured.at363 people

    The man who killed Google Search?

    Ed Zitron
    Personal · last shared 2026
    Chris Dixonmedium.com/@cdixon46 people

    What’s Next in Computing?

    Chris Dixon
    Personal · last shared 2018
    David Rosenthalblog.dshr.org127 people

    The death of corporate research labs

    David Rosenthal
    Personal · last shared 2026
    David Gerarddavidgerard.co.uk120 people

    The Brave web browser is hijacking links, and inserting affiliate codes

    David Gerard
    Personal · last shared 2026