When Computers Finally Speak Human
The end of programming as we know it
Note: This post was partially augmented by AI—specifically, Claude Sonnet 4. I used AI assistance to refine my initial draft, structure my ideas, and improve the writing. Given the subject matter, it felt appropriate (and meta 😃) to be transparent about this collaborative process.
I spent two hours yesterday building six features for my website. I didn't write a single line of code.
Instead, I had conversations. I told an AI agent "I want a workout tracking page that pulls from Strava" and watched it write the API integration. I described the visual style I wanted, and it matched my existing theme perfectly. When something broke, I said "this isn't working" and it debugged itself.
The Pattern of Abstraction
Every few decades, programming gets easier to think about:
- 1940s: Machine code → Flip switches, punch cards, think in pure binary
- 1950s: Assembly → Mnemonics replace binary, but you still manage memory by hand
- 1960s-70s: Structured programming → FORTRAN, COBOL, C—variables and functions, but still close to the machine
- 1980s-2020s: High-level languages → C++, Java, Python—objects, garbage collection, closer to human thought
- 2020s: Natural language → Just tell the computer what you want
Each transition followed the same pattern: the old guard predicted doom, early adopters struggled with clunky tools, then suddenly the new way became obviously better for most tasks.
COBOL programmers didn't disappear when Java arrived—they just became more specialized. The pattern repeats: abstraction layers don't replace what came before, they make it accessible to more people while pushing the experts toward harder problems.
What I Actually Built
Here's what happened in those two hours:
The Workout Page:
- Me: "Create a page that shows my recent workouts from Strava"
- Agent: Writes API integration, handles authentication, creates responsive cards
- Me: "The spacing looks weird on mobile"
- Agent: Fixes CSS, tests on different screen sizes
The Games Section:
- Me: "I want to show my Steam games with playtime stats"
- Agent: Researches Steam API, implements rate limiting, handles edge cases
- Me: "Can you make it look more like the workout cards?"
- Agent: Matches existing design system, maintains consistency
Plus four more features: a Now page, Now archive, sitemap, and an accent color switcher.
The agent (Cline with Claude-Sonnet-4) understood my existing codebase, maintained my design patterns, and even caught bugs I would have missed. It wrote API integrations, understood my theming system, created new components, tested everything, and fixed errors—all through natural language conversation.
All of this using tools I already had: Cline VS Code extension with GitHub Copilot and Gemini-CLI. No additional subscriptions, no expensive AI services.
This would legitimately taken me weeks to build on my own, based on my below-average coding speed.
Controlling the Dragon
A complex system that works is invariably found to have evolved from a simple system that worked. A complex system designed from scratch never works and cannot be patched up to make it work. You have to start over, beginning with a working simple system.
—John Gall, "Systemantics"
Claude 4 has by the grace of its capabilities, a behaviour of a child prodigy, tending to overcomplicate solutions to simple problems.
I had to guide the agent with context and constraints. When it over-engineered something, I said "this is too complicated, simplify it." When the design didn't match my vision, I described what I wanted differently. I still needed to understand the code it generated, to know when something was wrong, and to make architectural decisions.
The difference is that my expertise is now focused on what to build and how it should work, rather than the mechanical process of typing it out.
Closing Thoughts
I personally love the democratization of programming, even though it might come at my expense of job security. I dont think critical thinking in humans will ever be invalidated as a job skill.
Programming is finally becoming what it was always meant to be: a conversation between humans and computers, where the computer is smart enough to understand what we actually want.
The future belongs to those who can speak both languages—human and machine. The good news? We already know half of that conversation.
Related Counterpoint: Edsger W. Dijkstra, in his note "On the foolishness of 'natural language programming'", argued that programming in natural language is fundamentally misguided. He observed that natural languages are inherently ambiguous, context-dependent, and optimized for human communication—not for the precision required in instructing machines.
Updated:
- Previous: Ghiblify everything, or should we?....