"Progress"
We keep hearing things are getting better. Compute’s cheaper, models are smarter, everything’s a service now. Graphs go up and to the right. The story falls apart the second you stop letting Silicon Valley narrate it.
“Progress” depends entirely on what you measure. GDP per capita is up. Biodiversity has collapsed. Information access is technically unprecedented, but most of it’s SEO junk and AI slop now. Owning and controlling your own hardware is way worse than it was twenty years ago. You used to install whatever you wanted on a computer you bought. Now your phone ships with an app store taking a 30% cut and an OS phoning home every few minutes, and changing that is a weekend project. There’s always some number going up somewhere, and that’s just high dimensional data with a convenient projection, not actual progress.
Wirth’s Law says software gets slower faster than hardware gets faster. Niklaus Wirth wrote it in 1995 and it’s only gotten more true since. It pairs with May’s Law, software efficiency halves every 18 months, which cancels out Moore’s Law almost exactly. There’s also Andy and Bill’s Law from the 90s PC era, what Andy giveth, Bill taketh away, Grove makes faster chips and Gates ships fatter Windows to eat the gains. Thirty years documented and nothing’s changed. Slack burns gigabytes to send messages. VS Code’s a text editor running on Chromium. Discord ships a whole browser engine to do what mIRC did in 2MB. We ship 200MB apps to show text and images, stuff a 2005 Nokia handled in kilobytes. Hardware gets exponentially better and software expands to eat all of it and then some. Net UX gain over a decade is marginal at best, often negative. My ThinkPad on NixOS and Sway boots faster and uses less memory than a brand new Windows 11 laptop, and the bottleneck was never the hardware.
Jevons noticed in 1865 that more efficient steam engines burned more coal total, not less, because cheaper per unit always means more total usage. It maps onto computing exactly. Make compute cheaper per FLOP and consumption explodes. Lambda and serverless were supposed to cut resource use through better abstraction, but instead they unlocked whole new categories of workload and total cloud spend crossed $720 billion. Storage gets cheaper per gigabyte and we don’t store the same stuff more efficiently, we just store everything forever and build data lakes nobody queries. Data center energy use keeps climbing despite decades of per unit efficiency gains, and AI training is making it worse, a single big training run can burn what a small town uses in a year, and inference at scale is on track to dwarf that. We made compute cheaper so we’d use less of it, and we use astronomically more instead.
I run NixOS. I use FOSS wherever I can. Software freedom matters to me, not as ideology, as a practical requirement for controlling your own computing. There’s a real case that open source is genuine progress too, the kernel’s better than it was ten years ago, GCC and LLVM ship better codegen every release, Wayland’s finally replacing X11 and it’s actually good. But the bigger trend is grim. The internet was built on open protocols. Email’s federated by design, HTTP’s open, DNS is decentralized. Almost nobody self hosts email anymore because Gmail’s spam filtering kills small mail servers, so it’s not worth trying. XMPP predates WhatsApp and beat it on every technical axis, federated, extensible, encrypted, open, and it lost anyway because WhatsApp had smoother UX and network effects. RSS was the open decentralized feed standard and it lost to algorithmic timelines optimized for engagement, which is a nicer word for addiction. Every wave of web tech gets a short window of decentralization before corporate capture eats it. Web 1.0 was open, then Google and Facebook ate it. Web 2.0 was supposedly participatory and became five platforms. Web3 was supposed to fix all of it and just produced new rent seekers with worse UX. I went through the whole degoogling process on my phone recently, and it’s absurd how much work it takes to not hand your entire life to one company on a device you paid for.
I work in ML, so I’m not knocking the engineering behind any of this. next token prediction produces stuff nobody fully predicted, and some of that’s genuinely worth sitting with. But the second order effects are already here. Zero marginal cost text generation flooded the internet with spam, fake articles, and astroturfed reviews. Google search quality’s visibly worse because a huge chunk of the indexed web is now generated content optimized for ranking instead of usefulness. Training data for future models is getting poisoned by the output of current ones, this is called model collapse, and nobody’s got a clean fix for it. Copilot, Cursor, and the vibe coding wave mean a whole cohort of developers can produce code but can’t debug it, because they never built the mental model of what it’s actually doing, they can prompt but they can’t reason about execution. Coding gets more accessible, total output explodes, and average quality per line drops because the barrier to producing garbage fell faster than the barrier to producing anything good. On top of that the infrastructure cost is staggering, training takes thousands of GPUs for months, and inference at scale needs data centers pulling city level power. Efficiency keeps improving per operation, and total consumption keeps growing even faster.
The longer you work in software the more you realize the valuable work isn’t building new things, it’s keeping old things running. Patching, monitoring, upgrading, migrating, documenting, the stuff nobody blogs about, except apparently me. Progress narratives skip maintenance because it’s boring, but maintenance is what actually decides whether a system serves anyone over time. Half the internet runs on critical projects maintained by a handful of burned out people who haven’t been paid in years. The xz backdoor happened because one guy maintaining core compression infrastructure for basically every Linux distro got socially engineered, and that’s a structural vulnerability we keep ignoring because maintenance isn’t VC fundable and doesn’t make a good keynote. Log4Shell was the same thing, a critical RCE in a logging library half the Java ecosystem depends on, because nobody was watching it.
I don’t think nihilism is useful here. I’m still going to write code, build things, and care about doing it well. I’ve just stopped calling any of it “progress” in some grand sense. The better framing is maintenance and local improvement. The system’s got a problem, I can fix it, so I will. People need this, I can build it, so I will. Not because it’s on some trajectory, because it’s the right use of the time and skills I’ve got right now. The tech industry’s whole progress obsession is really a narrative obsession, the story you tell investors and yourself so shipping another SaaS product feels meaningful. You don’t need a grand narrative. You just need to build things that work, for people who need them, and maintain them honestly.
The treadmill’s got no destination. That’s fine. You can still do good work on it.