Don’t quit your day job: Generative AI and the end of programming

Visit our on-demand library to see sessions for VB Transform 2023. Sign up here

There’s a lot of angst about software developers “losing their jobs” to AI, being replaced by a smarter version of ChatGPT, GitHub’s Copilot, Google Codey’s base model, or something similar.

AI startup founder Matt Welsh has spoken and written about the end of programming. He asks if large language models (LLMs) are eliminating programming as we know it, and he’s delighted that the answer is “yes”: eventually, if not in the immediate future.

But what does this mean in practice? What does this mean for people who make a living writing software?

The value of new programming skills

Some companies will certainly value AI as a tool to replace human effort rather than augment human capabilities. Programmers who work for these companies risk losing their jobs to AI. If you work for one of these organizations, I feel sorry for you, but this is truly an opportunity.


VB Transform 2023 on demand

Did you miss a session of VB Transform 2023? Sign up to access the on-demand library for all of our featured sessions.

Register now

Despite the high-profile layoffs, the job market for programmers is great, it’s likely to stay that way, and you’re probably better off finding an employer who doesn’t view you as an expense to be minimized. It’s time to learn some new skills and find an employer who truly appreciates you.

But the number of programmers “replaced by AI” will be small. Here’s why, and here’s how the use of AI will change the discipline as a whole. I did a very unscientific study of how much time programmers actually spend writing code.

OK, I just typed “How long does a software developer spend coding” in the search bar and looked at the top few articles, which gave percentages ranging from 10% to 40 %. My own feeling, having spoken to and observed many people over the years, is on the lower end of that range: 15% to 20%.

Time for “the rest of the work”

ChatGPT won’t completely wipe out the 20% of time programmers spend writing code. You still need to write prompts, and we’re all learning that if you want ChatGPT to do a good job, prompts need to be very detailed.

How much time and effort does it save? I’ve seen estimates as high as 80%, but I don’t believe them; I think 25% to 50% is more reasonable. If 20% of your time is spent on coding and AI-powered code generation makes you 50% more efficient, you’re really only recovering about 10% of your time.

You can use it to produce more code – I’ve yet to see a programmer who hasn’t worked hard enough or faced an impossible delivery date. Or you can spend more time on “rest of the work,” the 80% of your time that wasn’t spent writing code.

Some of that time is spent in unnecessary meetings, but a lot of the “rest of the work” is understanding the user’s needs, designing, testing, debugging, reviewing code, finding out what the user has really need (which he didn’t tell you the first time around), tweaking the design, creating an effective user interface, auditing security, etc. It’s a long list.

Need for programmers: AI lacks design skills

This “rest of the work” (especially the “user needs” part) is something our industry has never been particularly good at. The design – of the software itself, user interfaces and data representation – is certainly not going away and is not something the current generation of AI is very good at.

We’ve come a long way, but I don’t know of anyone who hasn’t had to retrieve code best described as a “bubbling mass of bits.” Testing and debugging – well, if you’ve played around with ChatGPT a lot, you know that testing and debugging isn’t going away. AIs are generating incorrect code, and it’s not going to end anytime soon.

Security auditing will only become more important, not less; it is very difficult for a programmer to understand the security implications of code that he did not write. Spending more time on these things – and leaving the details of sending lines of code to an AI – will surely improve the quality of the products we deliver.

Encouragement to another form of programming

Now, let’s take a very long-term view. Let’s assume Welsh is right and programming as we know it will die out – not tomorrow, but within the next 20 years. Does it really disappear?

A few weeks ago, I showed Tim O’Reilly some of my experiences with prompting Ethan and Lilach Mollick to use AI in the classroom. His reaction was, “This prompt is really programming.” He is right.

Writing a verbose prompt is really just a different form of programming. You always tell a computer what you want it to do, step by step. And I realized that after spending 20 years complaining that programming hadn’t changed significantly since the 1970s, ChatGPT has suddenly taken the next step.

It is not a step towards a new paradigm, be it functional, object-oriented or hyperdimensional. I expected the next step in programming languages ​​to be visual, but that’s not it either. It is a step towards a new type of programming that does not require formally defined syntax or semantics. Programming without virtual punch cards. Programming that doesn’t require you to spend half your time looking up the names and parameters of library functions you’ve forgotten.

Understand the problems in depth – without counting the lines of code

In the best-case scenario, this could reduce the time spent writing code to near zero. But this best case only saves 20% of a programmer’s time. Also, it doesn’t really eliminate programming. It changes it – perhaps making programmers more efficient, and definitely giving programmers more time to talk to users, understand the problems they’re facing, and design good, secure systems to fix those problems.

Counting lines of code is less important than understanding problems in depth and figuring out how to fix them, but that’s nothing new. Twenty years ago, the Agile Manifesto pointed in this direction, promoting:

  • People and interactions over processes and tools
  • Working software on full documentation
  • Collaboration with the client on contract negotiation
  • Respond to change about a plan

Embedded AI: programmers working directly with customers

Despite 23 years of “agile practices”, collaboration with customers has always been patchy. Without engaging with customers and users, Agile quickly reduces to a set of rituals. Will freeing programmers from syntax really give them more time to collaborate with customers and react to change?

To prepare for this future, programmers will need to learn more about working directly with customers and designing software that meets their needs. It’s an opportunity, not a disaster. Programmers have worked too long under the stigma of being bearded guys who can’t and shouldn’t be allowed to talk to humans. It’s time to reject this stereotype and build software as if people matter.

AI is not something to be feared. Writing about OpenAI’s new Code Interpreter plugin (being rolled out gradually), Ethan Mollick says, “My time becomes more valuable, not less, because I can focus on what’s important, rather than on the routine.”

AI needs to be learned, tested, and integrated into programming practices so that programmers can spend more time on what’s really important: understanding and solving problems. The end point of this revolution will not be an unemployment line; it will be better software. The only thing to worry about is not making this transition successful.

Programming is not going away. This will change, and these changes will be for the better.

Mike Loukides is Vice President of Emerging Technology Content at O’Reilly Media.


Welcome to the VentureBeat community!

DataDecisionMakers is where experts, including data technicians, can share data insights and innovations.

If you want to learn more about cutting-edge insights and up-to-date information, best practices, and the future of data and data technology, join us at DataDecisionMakers.

You might even consider writing your own article!

Learn more about DataDecisionMakers

Leave a Comment