HN Hall of Fame Weekly email

Rob Pike's Rules of Programming (1989)

users.ece.utexas.edu Essays & writing Essays & articles Software engineering Class of 2023-11 Hall of Fame

Resurfaced independently across 5 calendar years, with breakout response in 4 of them.

submissions
6
submitters
6
observed span
2014–2025
peak thread · 323 comments
631 pts
latest 20+ return · 2023-11-01
473 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

> Rule 1. You can't tell where a program is going to spend its time. Bottlenecks occur in surprising places, so don't try to second guess and put in a speed hack until you've proven that's where the bottleneck is. I wish people would follow this rule and just let stuff work. I recently encountered the most extreme version of this I've ever seen in my career: a design review where a guy proposed a Redis caching layer and a…

dkarl·631-point thread·

I love this >Data dominates. If you've chosen the right data structures and organized things well, the algorithms will almost always be self-evident. Data structures, not algorithms, are central to programming. I completely agree with this. Which is why all the LeetCode interviews always struck me as odd. They focus on algorithms, not data structures, which is exactly what you don't want to do out of the gate, most of the time. I suppose, if you don't know algorithms at…

Torvalds version of rule 5: “Bad programmers worry about the code. Good programmers worry about data structures and their relationships.” Brooks's version: "Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your tables, and I won’t usually need your flowcharts; they’ll be obvious."

jonahx·383-point thread·

I don't think the author's interpretation of #5 to mean use smart objects (which I'll guess means objects in the object-oriented sense) is correct. I interpret Pike's meaning to be to use dumber objects that make the data visible and obvious. That's also consistent with Go's emphasis on simple datatypes. It's very close (in my opinion) to a restatement of Brook's quote "Show me your flowcharts and conceal your tables, and I shall continue to be mystified. Show me your…

hnkain·237-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
4

100+ points or 50+ comments

Total points
1786

reference only — not used in Hall rules or ranking

Total comments
809

reference only — not used in Hall rules or ranking

Every submission

DateTitle as submittedByPointsComments
2014-07-06Rob Pike's Rules of ProgrammingFirst breakouttorb23796
2017-09-16Rob Pike's Rules of Programming (1989)tosh383112
2017-11-25Rob Pike's 5 Rules of Programmingsirkarthik5818
2020-08-12Rob Pike's Rules of Programming (1989)Best threadgjvc631323
2023-11-01Rob Pike's 5 Rules of ProgrammingHall induction · Latest 20+ point returnudev4096473259
2025-08-05Rob Pike's Rules of Programming (1989)theshrike7941