ChatGPT was unveiled in public beta form slightly before Christmas. It is a chatbot powered by the GPT-3 large language model (LLM) designed to use generative AI and natural language processing (NLP) to produce text that is almost indistinguishable from that written by humans. Due to its impressive abilities, it quickly went viral and has so far amassed millions of users.
Tell it to write a poem about trees in the style of Shakespeare, or an article about the applications of AI in industry, and that’s what you’ll get.
Novelists, copywriters, and journalists are confident that, while it may produce impressive results, ChatGPT is not yet at the stage where they are immediately worried about their jobs. The prose text it produces is lacking in personality, somewhat prone to factual errors, and created primarily with the aim of including all of the necessary information. This means that it doesn’t take into account whether its output is interesting, amusing, scary, or capable of provoking any other emotion that a writer may intend to convey. All of these factors are important if your writing needs to engage readers.
When it comes to writing code, however, none of that really matters – all that’s important is that the program that’s created does the job it’s supposed to do. It either works, or it doesn't. Interpreters that take human (or machine)-generated code and run it as applications won't give up reading it halfway through because it isn't interesting enough!
Are ChatGPT and NLP a threat to programming and software engineering jobs?
Despite all of this, it seems that current thinking is that ChatGPT and other NLP technology available today are not going to immediately make all coders, programmers, and software engineers redundant.
For a start, it can only create relatively simple programs. Ask it for something too complex – such as a sophisticated game or business application, and it will admit its weakness and tell you that the task is currently beyond its abilities.
Computers can't yet tell us, for example, what types of code or applications are needed to achieve what we are trying to do. Even if it knows this because we tell it, then ChatGPT, in particular, can’t (at the moment) attempt to create this software that specifically gives us as users a competitive edge over users of another piece of software.
For example, we can't tell it to "make me an e-commerce platform that's more effective at selling than Amazon." If we wanted this, then we still have to spend the time and effort to first work out what makes Amazon's platform so great and then find a way of doing it better.
Due to this, ChatGPT (and other current NLP-based tools) still have limited effectiveness when it comes to creating software designed to give us an edge in business or, indeed, to compete with human creativity and ingenuity.
One caveat here is that although we can do our best to extrapolate what might happen in the future, in reality, no-one has a crystal ball. It’s fair to say that a lot of people who were used to AIs conversing at the level of Alexa or Siri were somewhat shocked by how good ChatGPT is.
Future developments could indeed increase the speed with which we are traveling towards a point in time where human programmers – or many other types of professionals – will simply not be needed. For the time being, however, we can be confident that there is still a wide range of skills required to develop software that computers don’t seem likely to be able to replicate any time soon.
So how can ChatGPT and other NLP tools be used by programmers today?
Programmers that I’ve spoken to about ChatGPT – and potential future evolutions of the technology – tell me that rather than a threat, at the moment, it's a very valuable tool.
It can be used to quickly generate frameworks, and outline builds of applications, giving input into questions such as how data should be structured and what user interface features are needed.
As a result of this, it can be great as an aid to “box-ticking” – in other words, ensuring that your code structure covers all the bases that are needed in order for your application to get the job done.
It’s often been written that as quickly as ChatGPT makes job titles redundant, it will create new ones. ChatGPT seemingly has the ability to hugely accelerate many routine tasks – both in coding and in other roles – but doing so will involve new skill sets. This includes developing the skills needed to come up with the prompts that will get it to do what’s needed.
As mentioned above, tell it to create a complex piece of software, and it will shrug its shoulders. But tell it to break down the tasks needed to do so into chunks and then start working on those chunks one by one, and you are more likely to start getting somewhere.
So it's unlikely that all those years you’ve spent learning about coding and software engineering have gone to waste. You’ll still need that knowledge and experience to help you pick the right prompts and to ensure that ChatGPT’s output is on the right track.
As one coder I spoke to about this situation told me, “I feel my role is more likely to become supervisory – I’ll be supervising teams of robot programmers and doing things they still can’t do. For example, coming up with the original ideas for what types of applications are needed.”
As well as creating new code, another useful function of ChatGPT is debugging existing code (or even code that it’s created itself). Any programmer will tell you that debugging – the process of finding and correcting errors – is often a laborious process that requires checking large amounts of code to work out what’s gone wrong. According to those who are already using it to help with coding, not only can ChatGPT automate this process, but it can also explain why the code isn’t working.
Over the past five or so years, I’ve spent a great amount of time talking to people about how AI is likely to impact their jobs or industry, and the one word which is mentioned in nearly every conversation is "augmentation."
What this means is that those of us who are able to work out how to take the newly-emerging breed of technology and use it to augment our own skills are likely to thrive. This means using it to automate the low-value, repetitive tasks that previously would have filled much of our time. At the same time, we have to work out how to best use the time this frees up to more effectively use the skills that computers can’t yet replace– creative thinking, strategizing, problem-solving, and emotional intelligence are some prime examples. Taking this approach to the disruptive emergence of AI tools and applications in our industry – whether you’re a computer programmer or a doctor – is the best way to make sure we stay useful and relevant in the age of AI.