The AI train has left the station. Some of us are on board, generating entire modules from specs. Others are still on the platform debating whether the train is even real. Four smart people wrote about this shift this past week. They all agree on what it means. And I agree with them.
The Short Version
AI crossed a threshold. Drew Breunig released a library with no code at all - just specs and tests. The AI generates the implementation in whatever language you want. Addy Osmani says junior dev tasks are being automated. Chris Gregori points out that “twenty dollars and a few hours” now produces working software.
So code is free. Got it.
But here’s the thing: software isn’t.
What Still Matters
Each author zeroes in on a different piece:
Drew Breunig in A Software Library with No Code: Simple utilities? Let the AI generate them from specs. Performance-critical systems with real maintenance burden? You still need actual code, actual humans, actual community.
Addy Osmani in The Next Two Years of Software Engineering: Developers need to level up. Architecture. Security. System design. The stuff that requires judgment. Junior devs should learn AI tools AND fundamentals. Senior devs should mentor and architect. Everyone needs T-shaped skills - deep in one area, broad across others.
Chris Gregori in Code Is Cheap Now. Software Isn’t.: The hard part was never typing the code. It’s distribution. Timing. Market understanding. Taste. “The hard part remains exactly what it has always been: finding a way to get people to care.”
Banay in Don’t Waste Your Back Pressure: Want agents to actually work? Give them automated feedback loops. Type checkers. Linters. Tests. Browser automation. Without that infrastructure, you become the bottleneck - spending your brain cycles on trivial corrections the agent could have caught itself.
The Consensus
Here’s what they all agree on:
-
Code ≠ Software. Generating code is cheap. Building maintainable, secure, well-architected systems is not.
-
The bottleneck shifted. From “can we write this?” to “should we build this?” and “will anyone use it?” and “how do we test it if we’ve never even read the code?”
-
Infrastructure is a force multiplier. The value of type systems, tests, and linters just went up. They don’t just catch your mistakes now - they catch the agent’s too.
-
Human stewardship isn’t going anywhere. Performance optimization, security patching, edge cases, community building - prompts can’t replace sustained attention.
So What?
Last week Linus Torvalds admitted he vibe-coded a Python audio visualizer for his AudioNoise hobby project. His words: “I cut out the middle-man – me – and just used Google Antigravity to do the audio sample visualizer.”
Linus. Torvalds. Vibe coding.
If the guy who wrote Linux and Git is using AI to generate code for his projects, the debate is over. The train left the station. If you’re still arguing about whether this stuff “really works,” you’re not even on the platform anymore. You stayed home in bed.
The way we used to write software? Already obsolete.
This isn’t about lines of code anymore. It’s about test frameworks. It’s about specifications. It’s about the infrastructure that lets agents verify their own work.
The question is whether you’re building the scaffolding that makes AI actually useful - or whether you’re still the bottleneck.
Write better tests. Write clearer specs. Build better feedback loops.
The code will write itself.
The bottleneck used to be writing the code. Now it’s testing code you may not have even read. That’s the shift. That’s the new job.
William Gibson said it decades ago: “The future is already here – it’s just not evenly distributed.”1 He was right. The future of software development is here. It’s just that some people are riding the train and others are still standing on the platform wondering if it’s safe to board. Or worse, still asleep in bed as the train is leaving.
-
William Gibson, often paraphrased. The original quote from a 1999 NPR interview: “The future is already here – it’s just not evenly distributed.” ↩︎