Skip to main content

Search...

Still Coding or Just Prompting?

Most programmers using AI tools will create legacy code faster, not better. Here's what actually separates quality developers in 2034.

8 min read
Cover for Still Coding or Just Prompting?

Software engineering in 2034 is likely to look more familiar than most predictions suggest: programming languages, tooling foundations, and the need for precision and testing will remain largely unchanged. The biggest shift is that developers who rely on AI code generation without understanding what the code should do will produce legacy code faster, making testing and the ability to ask precise questions the skills that differentiate strong engineers.

Key Takeaways

  • Developers who rely on generative AI to produce code without understanding it become maintenance programmers, stripped of the creative work they find meaningful.
  • Programming language turnover is slower than the industry assumes: every top-five language in active use was invented in the 20th century, and no language from the 2020s appears in the top 20.
  • Code quality on GitHub was already declining by early 2024, with rising code churn and more duplicate code directly traceable to AI-generated output.
  • The skills that differentiate developers in an AI-driven environment are precision, testing, and the ability to ask what software should actually do, not familiarity with any particular tool.
  • Natural language programming does not remove the need for software expertise: most spreadsheets, built by non-developers, are unmaintainable, incomprehensible, and buggy, which is the predictable result of imprecise specification.

Programming languages move slower than the hype suggests

The languages most developers use in 2034 already exist today. When you look at the data, the top five languages in use were, with one exception, developed in the 20th century. That pattern holds at the top 20 and at the top 50.

Kevlin Henney makes this point bluntly: no language created in the 2020s sits anywhere near the top of usage charts. Even Rust, which people reach for when they imagine the future of native programming, is already over ten years old.

The language you will rely on in ten years has most likely been invented and already has some presence, if not in the top 20, then in the top 50. So treat language churn as a slow trend, not a revolution. The languages evolve internally, but the overall mix barely shifts.

A simple way to forecast the next decade

To picture 2034, run the cycle backwards. If now is 2024, think about what 2014 was like, then 2004, then 1994. The exercise shows you two things at once: where real differences appear, and where almost nothing has moved.

Some hyped futures have already stalled under this test. Web 2 became a thing within a decade of the term being coined. Web 3 has been talked about for over a decade and still is not a thing, with no evidence it is heading there.

Other hype cycles look similar. Metaverse remains fragmented and is likely to stay in niches like gaming and some industrial uses, not a deeply immersive everyday environment. Most cryptocurrencies are not treated as currency, though central bank digital currency is a credible exception. 5G is the present, not the future.

Why your job survives the AI shift

Software development is not going to disappear. Kevlin made that prediction in 2016 at a conference in Poland and has restated it since: developers will still be needed, because the concept of development does not change.

The reason sits in what programming actually is. It is not the assembly of syntax. It is the seeking of precision, the work of answering what you are actually trying to do.

Natural language programming does not solve this. If you specify something badly in natural language, the result is worse than if you had written it in code. The bridge between the soft, flexible world of human intent and a notation that produces the same result every time is the job, and it is not going anywhere.

The spreadsheet already answered the “no-code future” question

The most widely used programming paradigm on the planet is the spreadsheet, and it tells you what happens when non-experts build software at scale. Most people who use spreadsheets have no software development background. Most spreadsheets are unmaintainable, incomprehensible, and buggy.

If the future of software is people who are not software experts producing systems, your job is safe, because that output will need to be understood and fixed. Spreadsheets did not put anyone out of work. They created opportunities.

Generative AI makes most developers maintenance programmers

The likely outcome of generative AI in everyday development is more legacy code, produced faster. Kevlin predicted this on Mastodon in April 2023 and stands by it: the majority of developers will create legacy code, they will just do it faster.

Here is the irony. A developer who takes the first thing the tool generates, without understanding what it is supposed to do, ends up maintaining code that someone, or something, else wrote. That strips out the part of the job most developers enjoy and replaces it with maintenance work they cannot reason about.

The early evidence already points this way. A study by GitClear, published in January 2024, showed downward pressure on code quality on GitHub: rising code churn, more duplicate and copy-paste code, more reverts of recently committed work. Knowing how people use the tools they are given, this was predictable.

Have they become more productive? Oh, they’ll be making more commits. — Kevlin Henney

Get good at testing, because that is where the value moves

The skill that protects you is the ability to check what a tool produces. If you cannot test it and you do not know what it should do, generated code turns you into a maintenance programmer by default.

To know how to test something, you have to know what it should do in the first place. Requirements and tests form a natural cycle. Strengthen both, in natural language and in code: what does the right thing look like, and what does the wrong thing look like.

These skills, precision, testing, and asking the right questions, have always been there. With AI in the loop, they stop being background work and become the visible difference between strong developers and weak ones, and between strong companies and weak ones.

AI is statistical, so it carries the bias of the past

A statistical approach to AI represents an image of the past and predicts the most likely outcome. That means it ignores edge cases and anything that falls below a majority.

This matters most where automated systems make judgments that affect human lives. The risk is not a question of technical ability. Anyone framing it purely as technology has misunderstood how people work.

The real question is about involvement and choice. If we do not take that choice deliberately, a number of people will be disadvantaged, and that follows directly from how statistical systems behave. This is not a decision to leave to whoever is loudest about the technology.

Two open factors will shape the next few years. One is the relationship between AI and large training data, and the unresolved copyright questions moving through the courts. The other is legislation: whether the EU’s rules become as influential globally as GDPR, and whether any international consensus emerges, or whether countries diverge sharply.

The split: quality-focused teams versus pressure-driven ones

By 2034, software development is likely to splinter rather than vanish. Some companies will have learned that generating the wrong thing faster is not the end game, and they will do well. Many will not.

The companies that miss this lesson tend to respond with micromanagement and pressure. The downside of continuous deployment is that the supervision cycle has tightened from monthly to daily, and without a genuinely collaborative environment that turns into a constant stream of deadlines.

For some teams, the work could become unpleasant. The difference will not appear by magic. It depends on whether an organization treats quality as the point or treats more commits as the point.

Agility is about shortening the distance between business and code

Collaboration improves when the communication distance between the people who need the software and the people who build it gets shorter. Decades ago, that distance was naturally small because companies built bespoke software in-house.

Today the picture is mixed. Outsourcing adds organizational boundaries, while small companies still get agility simply from being small. New companies keep forming to serve the software needs of others, then have to work back across the boundary they created.

For large organizations, agility often means trimming layers of management, from four down to three, and calling it progress. The pressure to reduce distance is constant, but it pulls in both directions at once.

What to learn now, and how to think about tools

Build on the foundations first, because they move slowly. The principles, the deeper skills, and the question of what you actually want from the software outlast any specific technology.

Treat languages as a portfolio, not an identity. Instead of “I am a Java programmer,” say “that is the language I am using this year,” and give the other languages you already touch first-class status too. If you work in one of the top ten languages, keep using it, and watch the next tier for where your future primary language is forming.

Tools are a different speed. Some move fast, some barely move. Kubernetes would have drawn blank stares a decade ago, while JUnit was built in the 20th century and is still here. Open source is where many of the strong ideas appear, so look there for what is coming.

The advice holds its shape across the years. Keep your feet on the ground, find the principles that have stood the test of time, work out which skills are yours, and then pick the new pieces worth holding on to. It is a balance.

Share this page

Related Posts