rob_pike_s_5_rules_of_programming
Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| rob_pike_s_5_rules_of_programming [2026/01/31 06:22] – created appledog | rob_pike_s_5_rules_of_programming [2026/02/19 02:32] (current) – appledog | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | from: https:// | + | = Rob Pike's 5 Rules of Programming |
| + | * from: https:// | ||
| Rob Pike's 5 Rules of Programming | Rob Pike's 5 Rules of Programming | ||
| - | | + | 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. |
| - | | + | Rule 2. Measure. Don't tune for speed until you've measured, and even then don't unless one part of the code overwhelms the rest. |
| - | | + | Rule 3. Fancy algorithms are slow when n is small, and n is usually small. Fancy algorithms have big constants. Until you know that n is frequently going to be big, don't get fancy. (Even if n does get big, use Rule 2 first.) |
| - | | + | Rule 4. Fancy algorithms are buggier than simple ones, and they' |
| - | | + | Rule 5. 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. |
| - | Pike's rules 1 and 2 restate Tony Hoare' | + | Pike's rules 1 and 2 restate Tony Hoare' |
| + | |||
| + | == John Carmack' | ||
| + | On the Lex Friedman podcast, John Carmack who should need no introduction was asked what the best programming language was, given that the answer would also reflect what his favourite programming language was. I will add this to the list as the sixth rule; the Carmack rule. | ||
| + | |||
| + | Rule 6. "The value of not having a random mutable state that you lose track of". It's not about writing of the program initially, it's the whole lifespan of the program, and that's when it's not necessarily how fast you wrote it, or how fast it operates-- but it's how can it bend and adapt as situations change. | ||
| + | |||
| + | Rule 7, he continues, is how well it hands off between the continuous revolving door of programmers taking over maintenance and different things and how you get people up to speed in different areas and there' | ||
| + | |||
| + | Rule 8. The best programming language is the one you're using. In almost every case I have seen where people mixed languages on a project, it has been a mistake. | ||
rob_pike_s_5_rules_of_programming.1769840537.txt.gz · Last modified: by appledog
