Introduction
Over the last couple of decades, computing technology has evolved astronomically. From the earliest forms of assembly language developed in the first half of the 20th Century to the functional and object-oriented languages of the modern era, communicating with our machines has become more powerful, efficient and reliable than ever before. Now, the evolution of modern computer programming is taking its next step. With the explosion of artificial Intelligence (AI) research and development, some companies have taken the first steps to using natural language processing to allow computers to write our code for us. One such innovation is OpenAI. They recently launched an updated version of the OpenAI Codex: a platform that uses AI to translate natural language into code.
The idea for OpenAI Codex was originally conceived when scientists at OpenAI attempted to use the GPT-3 AI model to write simple python programs from python docstrings. GPT-3 was surprisingly successful; it was not explicitly trained for code generation but was still capable of writing simple programs.
I’d like to preface the rest of this article by saying that most of this is conjecture and speculation. I am not an expert in this field of Artificial Intelligence, nor am I capable of predicting the future potential of the technologies discussed. What this is, is an educated guess at what might occur, supposing that AI models like Codex continue to develop to the point where we can realistically expect a non-coder to effectively generate a program from scratch using only the AI. (I’d love to hear your thoughts via our Twitter!)
So, how exactly does it work? To give you an example, if we were making a web-based game using Javascript (JS), we could tell OpenAI Codex “Use this image <link>” and paste the URL of the image we wanted to use. The platform would then automatically write JS code to import the image from the source and insert it into the body of the website. We could keep going by telling it to “Make the image bounce off the walls” and a block of code would then be written to animate the image traversing the screen and ricocheting off the sides.
Contrast this with the way we code now: A programmer must know the vocabulary and syntax of a language almost by heart, they must know how to abstract code into functions, they have to remember to apply coding standards to every line of code, and the list of requirements goes on and on. There are some interesting consequences for this, which I’ll get into below.
The future of coding: Positives
Natural language programming has the potential to revolutionize computer science (CS) education and software development across all industries. It’s simplicity could make programming accessible to a huge number of people who otherwise may not be able to learn to code. Especially useful in a world with a growing deficit of skilled programmers.
The benefits of OpenAI’s approach for software developers are numerous. The act of programming would become simpler and more result-focused because programmers wouldn’t have to worry about the intricacies of coding best-practices and could instead pay attention to their desired outcome. The time required to write a functioning program could be dramatically reduced and the code would always be error-free, standardized and readable. However, would it really work that well?