Will ChatGPT replace developers?

Artikel uit SDN 147

Artificial Intelligence models

Let’s start with a short recap of what ChatGPT is. Built by OpenAI, which is backed by Microsoft, it’s a model which in itself is the output of the GPT-3.5 algorithm (GPT-4 as of March 2023). Put in layman’s terms; these models are the result complex algorithms which (kind of) resemble the neural networks in our human brains and are thereby able to perform ‘intelligent’ things.

Until ChatGPT, examples of these would be things like face recognition, insect identification, song discovery, self driving cars and more. With the exception of self-driving, the mentioned applications of AI are more or less in the recognition realm. Those models are “taught” how to recognize by supplying them with huge datasets of earmarked data, which it uses to find out the differences between, for instance, cats and dogs. Once trained, the model is then able to take a picture of a given pet and say whether that’s a cat or a dog.

We’re now starting to see a new breed of models which are more “creative”. Instead of pure recognition, these rely on prompts to produce content as a reply. They’re known as generative algorithms. ChatGPT is the main subject for this article, but a few months earlier DALL-E 2 caused a few stirs as well, with its ability to generate very impressive images based on textual prompts. And more in our own line of business, GitHubs Copilot (launched June, 2022) can actually help you write code.

Microsoft has quite aggressively started to include AI in its own products. Bing is probably what attracted the most media attention, when Microsoft openly took on Google to include these models as part of search and at first sight did a better job (on hindsight, it might not have been that great: https://edition.cnn.com/2023/02/14/tech/microsoft-bing-ai-errors/index.html).

So now that these models have begun generating content and literally: generating code, how will this impact the software development business?

What does ChatGPT do?

As you can see in the video below, ChatGPT is quite capable of writing code on its own. It’s arguably better at it than some humans are. So how does it even know all this? Simply said: it relies heavily on the knowledge gathered on the Internet. Simply put: it has finishing reading the Internet, at least the content up to 2021 (for now). And it’s quite capable of searching all of that content, picking out exactly the things that are needed to provide an answer to the given question and present that in a very readable and understandable way. That last part is important; it’s more focussed on producing readable and understandable content than content that is factually correct. That said, it often comes up with the right answer, but not always.

Nick Chapsas shows the ability of ChatGPT to write software.

Those of you who are old enough might still remember Ask Jeeves (which is now ask.com), a popular search engine before Google took over. Ask Jeeves was pretty much similar to what Google does, but featured a butler on it’s front page which you could then “ask questions”. The problem, as with Google, is that the “answers” are not really answers but hyperlinks to pages which might contain the answer you were looking for. This is the fundamental difference with ChatGPT: it really answers. And that answer is usually correct. Usually.

What doesn’t ChatGPT do?

Given that ChatGPT is trained on “the entire internet” up to 2021, it by default lacks information from the last year. You can be sure that this will be fixed in future versions, but right now this still holds true. That means that when you ask it to give you the code to interact with some SDK, it might not know about the most recent versions of that SDK. And thus it might forget to tell you about that great new feature or recently discovered security problem.

Also, “the entire internet” isn’t always right. There’s a lot of developers who use Stack Overflow in their daily routine. These developers will know that a lot of questions have multiple answers which are not equally as good. Fine-tuning of the dataset could of course easily fix that; for instance by only using the accepted answer or at least preferring that answer over others. But how will it know that the documentation of a given NuGet package is factually inaccurate or outdated because the developer didn’t care about documentation that much?

Lastly, there’s only so much information that one can put into a single prompt. ChatGPT has contextual knowledge which serves as a “memory”, so you can keep building on earlier prompts. But it won’t yet build an entire solution for you, nor haven’t I seen it commit things into git. We’re definitely not at a point where you can give it some functional requirements and then have it build your app for you. Will we get to that point? I’m not sure.

It’s all about the prompt

When DALL-E launched, marketplaces for prompts (yes, only prompts) started popping up. You could say that a large part of the creativity in the output is actually due to creativity in the prompt. A similar thing applies to ChatGPT: the better questions you ask, the better answers it provides. The above video by Nick Chapsas is an illustration of this, since Nick for instance quite specifically asks to provide a version of the code without heap allocations. There’s a lot of developers out there who don’t even know what heap allocations are or how these might impact performance. Once could reason that this tool might be more powerful in the hands of someone who knows what they’re doing.

GitHub Copilot

We already briefly mentioned GitHub Copilot. For those who are not aware: Copilot integrates into your IDE to write code for you, based on what you’re typing. So instead of asking it questions like with ChatGPT, it will proactively guess what you’re doing and then try to write the code for you. And as you might expect, Nick Chapsas has a video on that as well.

Nick Chapsas demos GitHub Copilot for C#

It’s based on GPT-3, so a slightly earlier version of the same model which of course will be updated continuously. It will start providing suggestions for code lines or even complete functions, which you can easily accept so that you won’t have to type it out yourself. I’ve used this in my day-to-day coding and it will definitely increase productivity. If you haven’t tried it yet, do so!

So how will this impact software development?

Ok, having seen all this you might get a little worried. Has the time come where AI will start taking over your job as a developer? In my opinion, there’s really no need to worry. Yet. ChatGPT is still in it’s early days and since the moment it started to get busy, the availability has become an issue. There’s a paid subscription now where you pay $20 monthly for unlimited use, which depending on how you use it may or may not be worth it. In it’s current form, I regard it as a very useful tool which you can quite easily incorporate into your daily routines in order to improve your efficiency and therefore output. In essence: it can help you get thing done.

In the long term though, things might be different. Of course this technology will improve and these models will get better and better at writing code. So it’s not that unlikely that at some point technology will start replacing the very inefficient developers by ones who maximize their efficiency by using tools like this. Not an immediate problem in a growing market, but recent tech lay-offs prove that our market doesn’t always grow.

From a company or CxO perspective, your software development teams or department should at least be aware of this movement. When your developers can and want to incorporate these new tools in their daily routines, great: facilitate them! It’ll most likely increase their output. If none of your developers seem to care, you’re efficiency in the long term might not be what you want it to be. Chances are that they’re ignoring other productivity boosters as well, being stuck in a specific way of working.

If ChatGPT is like a power tool, developers are like carpenters. Power tools didn’t make carpenters obsolete, they did change their jobs. These tools allowed them to be more efficient, building the same house with fewer people or in less time. And the ones who master their tools have more relevancy than the ones who don’t. So should you consider ChatGPT a threat or an opportunity? In my opinion it’s both at this time, and you get to choose what you want it to be. Ignore it and it might become a threat to your job in the future. Use it and it might be one of your favorite power tools. But use it with caution, power tools can be dangerous.

Update March 15, 2023

I quickly wanted to revisit this article based on the newly released GPT-4 version. As you would expect, GPT-4 is an improvement over GPT-3.5. It’s main improvements include: reliability, creativity, and handling of nuanced instructions. Of course we were not the only ones interested. The above mentioned Nick Chapsas released this video showing the model in action:

Impressive, right? It’s even better than what we already had. It will bring a bigger increase to productivity. Next to this announcement and release, we also learned that Bings chat functionality is also based on the GPT-4 model (https://blogs.bing.com/search/march_2023/Confirmed-the-new-Bing-runs-on-OpenAI%E2%80%99s-GPT-4). So it’s safe to say that this model wil rapidly outdate it’s 3.5 predecessor and take over as the primary version. It will be interesting to see how quickly OpenAI will then be able to iterate to version 4.5 or 5.

So what does that mean for the conclusion of this blog? Nothing much, really. We already pointed out the enormous potential of the technology. We also stated that in time it might start to threaten jobs. Did that time arrive already? Only time itself will tell, but this might well be when it all started.