Generative AI and a new version of old programming

Generative AI and a new version of old programming

Artificial intelligence is changing everything. Just ask the CEOs of public companies who can’t seem to stop bringing up the topic on earnings calls. Or ask one CEO, Amazon’s Andy Jassy, who just elevated an AI-oriented exec to his “S-team,” overseeing AI across Amazon. Clearly, AI is a big deal. But what about you, a developer working for one of those businesses? What’s the impact on you?

If you’re worried AI will take your job, relax. It won’t. If you’re worried that AI will write all your code for you while you sip mai tais on a beach, well, it won’t do that, either. As O’Reilly Media Vice President Mike Loukides argues, ChatGPT will absolutely change the way software development is done, but not as dramatically as we sometimes think, and generative AI won’t necessarily make coding easier. Rather, like all technological advances, generative AI enables developers to focus their time more effectively.

Let’s talk numbers

As Loukides highlights, maybe 20% of a developer’s time is spent writing code. That number might be generous. Given the mix of meetings and other things that crowd a developer’s ability to focus, some peg actual coding at 10%. With this in mind, a coding assistant that promises to magically remove a developer’s coding would not help all that much. Much better would be an AI assistant that promises to show up for all your meetings. (Please? I’d pay lots of money for that.)

However much time a developer spends writing code, AI coding assistants such as Amazon CodeWhisperer or GitHub Copilot can help you use that time much more effectively, as I’ve written. As developer Simon Willison suggests, “ChatGPT (and GitHub Copilot) save me an enormous amount of ‘figuring things out’ time. For everything from writing a for loop in Bash to remembering how to make a cross-domain CORS request in JavaScript—I don’t need to even look things up anymore, I can just prompt it and get the right answer 80% of the time.”

Of course, to know when the answer is right and when it’s wrong, you have to be a fairly experienced developer, as I’ve called out. Less experienced developers won’t know when the syntax or suggestions are simply wrong. But generative AI can make a good developer into a great developer—or at least a much more productive developer. Or not. As Loukides argues, “If 20% of your time is spent coding, and AI-based code generation makes you 50% more efficient, then you’re really only getting about 10% of your time back.” That surplus time could be spent on understanding the user needs so that your coding time is spent on the highest impact code.

But developers do other stuff, too. So far we’ve saved a small percentage of time but haven’t fixed any of the other issues that developers handle. Security. Testing and debugging. Design. Even at the most optimistic projections about AI’s impact on coding, developers are looking at full employment for many years to come.

But maybe the nature of their programming will change.

If it looks like programming and smells like programming

If you’ve spent any time with generative AI tools such as ChatGPT, whether for writing code or editing pictures or something else, you know how important the prompt is. The more detailed the prompt, the better the output. People have started to adorn their LinkedIn profiles with “prompt engineer” job titles. Though a bit meaningless today, they soon won’t be. As Loukides captures, “Writing a detailed prompt really is just a different form of programming. You’re still telling a computer what you want it to do, step by step.”

For developers, it means that in order to save some coding time, you’re going to need to invest time in understanding the underlying large language models that you’re prompting. As Microsoft Research developer Victor Dibia notes, “In my experience, optimizing your prompts (being specific, placement of important instructions, wording, etc.) to work for smaller models does lead to more reliable output behavior for larger models.”

With this step into prompt engineering, we may have entered the next phase of programming. As Loukides points out, “It’s a step towards a new kind of programming that doesn’t require a 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 that you’ve forgotten about.” This is programming, every bit as much as the Java code you wrote last year. But different.

As a developer, you’ve got a long and fulfilling career ahead of you. Generative AI doesn’t eliminate your job, though it’s very likely going to change it. We can call some of this change “prompt engineering,” but it’s still programming, and it still requires smart developers. No one gets a pass from the robot overlords of this AI-fueled future.

Add a Comment