Introduction
Over the past year, there has been a surge of interest in using large language models in programming. I want to share my perspective on where this is heading.
To start, I find it useful to draw a parallel between authors and programmers. At their core, both work with language authors with natural language, programmers with code. LLMs excel at generating text, so it’s natural to wonder whether they might one day replace either role.
When we think about AI replacing authors, though, most of us instinctively dismiss the idea. Writing isn’t just about putting words together; it’s about the connection those words create. Humans resonate deeply with language on an emotional and intellectual level.
Interestingly, the same debate has long existed in the developer community: is software development an art form? I believe it is, and I’ll write from that perspective throughout this post. Just as readers crave authenticity in writing, people seek meaning and creativity in software. That’s why “vibe coding,” the current trend of casually outsourcing chunks of code to AI, won’t define the future of programming.
To understand where AI-assisted coding is really heading, it helps to break it down into different categories.
Types of AI Coding
-
Vibe Coding
This is the “just tell the AI what you want” approach: describing an app or feature in natural language and letting the system generate everything. It’s fast but shallow. The result often works at the surface but lacks structure, maintainability, and intent. Useful for prototypes, not for lasting software. -
Agentic Coding
Here, AI acts like a pair-programmer. It reads and modifies your code, uses tools like linters and debuggers, and suggests architectural improvements. This doesn’t replace the developer; it augments them. It can catch mistakes, propose optimisations, and experiment with approaches you might not have considered. This is where AI begins to feel like a real collaborator. -
The “Stack Overflow Replacement”
Many developers already use AI this way: dropping a bug, error, or question into a chatbot and getting back an explanation or snippet. It’s practical and time-saving. While not revolutionary, it smooths the learning curve and accelerates day-to-day work. -
Learning Tool
For beginners, AI is less a co-worker and more a mentor. Imagine being able to ask a seasoned developer any question and get a clear, personalised explanation. That’s what AI provides. The real value isn’t just knowledge transfer but confidence-building, giving new programmers the courage to push forward.
Programming as Philosophy
These categories show that AI is reshaping the practice of programming, but the deeper question is what role remains uniquely human. The answer, I think, lies in philosophy.
For most of computing history, technical expertise was the highest currency. The programmer who knew the deepest internals of a system was the most valuable. But when an AI can surface an algorithm, generate boilerplate, or optimise syntax in seconds, pure technical mastery is no longer the differentiator.
What becomes valuable instead is the programmer’s ability to understand people. To see how software fits into lives, workflows, and communities. To ask not just “how do I build this?” but “why should this exist, and how will it feel to use?”
I’ve seen this play out in my own projects. When I use AI to generate routine code; setting up API endpoints, writing unit tests, scaffolding UI components I free up mental space to think about the bigger picture. Instead of grinding through the boilerplate, I get to ask: Does this flow feel natural for a user? Would this feature make someone’s life easier, or just more complicated?
Another example: I once used an AI assistant to quickly prototype a scheduling interface. The generated code worked fine, but what mattered most wasn’t the syntax it was realising that the interface assumed too much technical literacy from the user. AI could generate buttons and logic, but it couldn’t sense the frustration someone might feel if the system made scheduling harder instead of easier. That judgment had to come from me.
This is what I mean when I say programming is becoming more philosophical. The new artistry lies in empathy: understanding the human side of computing and shaping tools that resonate with people’s real needs. AI can assist with the how, but only humans can truly decide the why.
Where This Leaves Us
Vibe coding shows us the limits: AI can generate something functional, but without human direction it lacks soul. Agentic coding, on the other hand, hints at a future where developers spend less time on boilerplate and more time shaping the deeper logic and design of software.
I don’t believe AI will replace developers, any more than it will replace authors. What it will do is change the shape of our work. Tomorrow’s most valuable programmers won’t just know syntax or frameworks they’ll know how to guide, correct, and collaborate with AI while grounding their work in human experience.
That is where the artistry of software will live: not in the lines of code themselves, but in the meaning they create for the people who use them.