HN Hall of Fame Weekly email

Write code that is easy to delete, not easy to extend (2016)

programmingisterrible.com Essays & writing Essays & articles Software engineering Class of 2024-10 Hall of Fame
Screenshot of programmingisterrible.com captured 2026-07-20
Page preview · captured 2026-07-20

Resurfaced independently across 3 calendar years, with breakout response in 2 of them.

submissions
8
submitters
8
observed span
2018–2024
peak thread · 109 comments
365 pts
latest 20+ return · 2024-10-28
269 pts

Submission timeline

2007–2026

One slot for every year since HN launched. Height is that year's peak points; orange marks a 100+ point or 50+ comment breakout. Select a bar to open its strongest thread.

First comments on top threads

HN comment order

The unfortunate side effect of this (very good) advice is that all code that's easy to delete will eventually be replaced with code that's hard to delete (and thus will eventually be impossible to delete in order to be replaced with something better).

My favorite saying: “simple is robust” Similar in spirit to Lehman’s Law of Continuing Change[0], the idea is that the less complexity a system has, the easier it is to change. Rather than plan for the future with extensible code, plan for the future with straightforward code. E.g. only abstract when the situation requires it, encourage simple duplication, use monoliths up front, scale vertically before horizontally, etc. I’ve built many 0-1 systems, and this is the common thread among all…

Being on the other side of the recommendations in that article, I disagree. Do whatever you want for the pilot system but couple things that should be coupled in the real system. Let domain driven knowledge drive decisions on coupling/decoupling

jiropoo·6-point thread·

I find the difficult thing with this advise is that people always want to skip step 1. From my experiance once you introduce the principle of refactoring repeated code into functions no one wants to repeat code and will go to great length to justify abstractions before they know if its needed. I see this with teams following iterative product development processes as well - they never want to build the 'simplest thing' first and learn. There is usually an…

lobsang·2-point thread·

The first top-level comment from each of the four biggest threads, in HN’s own order. Excerpts are shortened; open a comment for full context.

Breakout years
2

100+ points or 50+ comments

Total points
657

reference only — not used in Hall rules or ranking

Total comments
212

reference only — not used in Hall rules or ranking

Every submission