Vibe coding on the 20th floor
This week’s ATP has a members-only special segment about vibe coding. One snippet from John Siracusa, encapsulating much of the conversation:
As programming tools have gotten better, the demand for programmers has gone up, not down.
When Steve Jobs returned to Apple, he gave a demo of NeXTSTEP at Macworld. I was lucky enough to be in the audience. Steve said that moving from traditional programming frameworks where you had to start with almost nothing, to Objective-C and what would become the Cocoa frameworks, was like starting a building on the 20th floor, with all the foundational pieces built for you.
A small team of only a couple developers could now build complete apps that before would’ve required a much larger team. Solo developers were of course already building apps on their own, but Steve was right that Cocoa would greatly increase productivity, opening up the Mac to more developers.
Vibe coding is different than a new system framework. With a framework, you mostly trust that it is well-tested and understood by the developers who wrote it. With AI slop, no human has tested the code before you literally just saw it unfold on screen. You have to understand it and tweak it before shipping a real product. Vibe coding instead is purposefully giving in to the machine and just letting code fly without any review.
Still, there’s a similarity to previous programming advances just because of the productivity gains. With AI, the step forward is more extreme than it has ever been.
Vibe coding will mostly prop up small projects and experiments, less likely to replace actual full-time development work. But if you’re programming without any assistance from AI, you are at a disadvantage, in the same way that programming in pure C with the Mac toolbox was much slower and error-prone for building a modern Mac app than using Objective-C when the Cocoa frameworks matured.
If after considering that productivity difference, a developer on principle wants to avoid AI, I respect that. Everyone should choose the programming language and frameworks that best suit their work. But there’s no sense in pretending that AI won’t change development, or that we won’t need to adapt along with it.