In today’s world, we often talk about artificial intelligence as the next frontier, with artificial general intelligence (AGI) even seen as the final frontier. But maybe it’s more apt to see it as the natural evolution in a series of progressive shifts. The craft of software engineering has been through multiple waves of transformation, each shaped by its technological, cultural, and economical contexts. The next wave did not simply replace the previous; they gained inertia from one another, expanding the capacities of those using computers – and lowering the barrier of entry of who could program machines themselves.

In the mainframe era, computing resources were scarce and tightly centralized. A small group of specialists wrote low-level instructions to optimize compute and memory usage. With the arrival of the personal computer, more affordable hardware combined with more accessible operating systems and programming languages sparked a wave of democratization. Coding became a growing phenomenon in schools and computer clubs. Garages turned into offices. The personal computer fostered a wave of creativity and entrepreneurship by allowing users to transform into developers.

Then the internet era changed everything. Suddenly, software could connect to services and people around the globe. Software distribution no longer required physical media, physical boxes, and physical stores. Web development took center stage, and new languages like HTML and JavaScript made building applications accessible to an even broader swath of programmers. Open source emerged as an indispensable force, letting developers build on the collective knowledge of a worldwide community instead of starting from scratch. The internet turned coding into a social activity, accelerating innovation by making open source the backbone of modern software.

Finally, cloud computing put it all together: Large amounts of PC hardware, running open-source software, put into data centers around the world, connected to the public internet. Always on, always available. The pay-as-you-go model empowered startups to grow without needing massive capital expenditures, and enterprises could offload routine maintenance. Developers found themselves grappling with architecture in new ways: full-stack engineering, micro services, continuous integration, and 24/7 on-call schedules became standard. The cloud made it possible for small and large teams to deliver software with global scale and rapid delivery.

Today, we stand on the cusp of another major pivot: the rise of artificial intelligence allows anyone to create any digital content with one or more prompts, written in natural language. And developers are once again on the forefront, using AI for code generation, code review, security and compliance, and production monitoring. Much like each preceding step, AI won’t eliminate developers – it will empower them to tackle new, more complex challenges. Through machine learning models that generate or suggest code, developers can accelerate mundane tasks and experiment faster. AI agents can sift through documentation, identify bugs, and even propose architectural improvements. This emerging paradigm lets developers think more strategically about the user experience, performance, and reliability, rather than obsessing over syntax and rote implementation. Developers will increasingly build in AI-native editors and environments – where you can’t build without building with AI.

In this new AI-native future, the developer’s role will shift in similar ways as in previous waves, climbing the abstraction ladder by replacing the complexities of the underlying layer with technology that allows them to manage even more complex systems. We will see a future where code is co-written by humans and AI agents. The human sets the overarching goal, determines constraints, ensures ethical considerations, and divides the work into small chunks that can be handled by the state-of-the-art model, while the AI agent takes on the grunt work of writing, testing, and refining large swaths of code. Debugging sessions are becoming more like dialogues between human and machine, instead of the hours-long hunt for elusive errors. The interplay between humans and AI agents will become central to how software evolves, introducing a dynamic feedback loop that extends beyond the code itself. The developer, in essence, becomes the conductor of an AI-empowered orchestra.

Critics worry that AI-driven coding might render human developers obsolete. However, history suggests that every major leap in abstraction – from assembly languages to high-level frameworks, from optimizing for a single computer to thousands of virtual machines, from one release every quarter to hundreds per day – simply allowed people to accomplish more. The anxiety is understandable, but time and again, developers have discovered how to channel the new capabilities into entire domains of innovation that didn’t exist before. They have always used automation to make their life easier. Batch scripts, bots, workflows, or pipelines. Now we call them AI agents, but the idea remains the same: Define a goal, let the compute processes do the work, sometimes over hours, then validate the output. Rinse and repeat.

AI code generation, models, and agents won’t automatically produce perfect solutions; human oversight, expertise, and intuition are still vital. In many ways, the hype around AI is a reflection of our anticipation for how drastically new tools can transform what’s possible. With every technology wave, from mainframes to personal computers, the internet, open source, and the cloud, developers have expanded their horizons. They took on new forms of intricacy that they had to learn and master in order to reach the wave’s full potential. AI stands as a continuation of this arc – a technology that allows programmers to do more with less. It doesn’t negate the necessity of human creativity and human craft; AI amplifies them by handling repetitive tasks at lightning speed.

Ambient computing and artificial intelligence are the natural evolution, the stream of consciousness in the developer odyssey. Which leaves us with one final quest(ion): what new vistas will developers explore, what novel arenas will humans build once they are unburdened from the complexity of today’s software development processes?