Wirth's Law
Wirth's Law (coined by Niklaus Wirth in 1995): 'Software gets slower faster than hardware gets faster.' A compact articulation of software-bloat-consuming-hardware-gains that has held remarkably well across 30 years despite 500-2000x hardware improvements.
**Wirth's Law** is an observation by Swiss computer scientist Niklaus Wirth (creator of Pascal, Modula-2, and Oberon), published in his 1995 essay 'A Plea for Lean Software' in IEEE Computer. > 'Software is getting slower more rapidly than hardware becomes faster.' ## Empirical support Between ~1995 and ~2026, typical consumer hardware improved by roughly three orders of magnitude on multiple axes: - CPU clock speed: ~100 MHz → ~5 GHz (50x) - CPU cores: 1 → 16+ (16x) - RAM: 16 MB → 32 GB+ (2000x) - Storage speed (HDD → NVMe Gen5): ~5 MB/s → ~14,000 MB/s (2800x) - GPU throughput: pure hardware rasteriser → 60+ TFLOPS (~10,000x) Despite this, the perceived responsiveness of a typical consumer application (text editor keypress latency, email client open time, window switching delay) has not meaningfully improved — and in many categories has regressed. Dan Luu's keyboard-to-screen latency measurements show modern laptops performing worse than an Apple IIe (30 ms vs 100+ ms). Modern web applications loading in 5-10 seconds on devices that could run full desktop environments in 1995 is the classic example. ## Attribution history Wirth attributed the quote to Martin Reiser, but it is universally known by Wirth's name. Related formulations: - **Gates's Law**: 'The speed of software halves every 18 months.' (inverse of Moore's Law) - **May's Law**: 'Software efficiency halves every 18 months, compensating Moore's Law.' - **Andy and Bill's Law**: 'What Andy gives, Bill takes away.' (Andy Grove at Intel delivers hardware speed; Bill Gates at Microsoft consumes it.) ## Mechanisms Why software keeps getting slower: - **Abstraction layer accumulation**: each layer (VM, framework, web runtime, sandbox) adds overhead; layers rarely retire. - **Feature creep**: users and marketing demand new capabilities that are not removed when unused. - **Engineer incentives**: shipping features is rewarded; deleting code is not. - **Cheap hardware excuses poor algorithms**: O(n²) code that ran badly on 1995 hardware runs acceptably on 2026 hardware, removing pressure to fix it. - **Electron and Chromium**: shipping a full browser per app (~150-300 MB) is cheaper for vendors than writing native. - **Telemetry, analytics, ads**: every modern consumer app ships heavy observation machinery that didn't exist in 1995. ## Counterexamples Carefully engineered software still runs fast: The Original 80KB Windows Task Manager, Sublime Text, mpv, ripgrep, fd, foot terminal, qutebrowser. The problem isn't that lean software is impossible; it's that the market doesn't pay for it. ## Related ideas - **Jevons paradox**: efficiency gains increase total consumption. More powerful hardware invites heavier software. - **Parkinson's Law** applied to resources: software expands to fill available RAM/CPU. - **Zawinski's Law**: 'Every program attempts to expand until it can read mail.' - **Henry Petroski**: 'Form follows failure.' Software converges on current hardware capacity boundaries.