The Prompt Driven Development
GitHub announced their Copilot X adopting GPT-4 to provide chat and voice interfaces and change the way software engineers interact with the source code. The evolution of software engineering was always building abstractions upon abstractions - from machine code through assembly language to high level programming langages which by itself also eveolved similar way. Can AI change the way we code and introduce another level of abstraction - the AI-prompt generated source code?
Programming language is just a way to tell computers what to do. There’s no reason not to use a natural language for that if only we have decent translators between our language and language of machines (which is bits and bytes).
Several attempts of code generation tools were alredy taken and failed miserably. Such tools usually generated crappy code and at the end lot of effort had to be put into improving it. However, the problem of those tools was it’s inability to understand the code, the problem and inability to interact with an engineer. The developers of such tools had to predict for what their tool can be potentially used and code the rules in form of if’s and else’s.
AI is fundamentally different in this regard. AI is not a collection of procedures, if’s and else statements added by developers. AI builds it’s own knowledge and reasoning and in it’s own way build some form of understanding of what it does or is asked for. This allows for completely different type of interaction with the code generation tool. You can ask it to refactor what it produced, to fix errors (by passing error messages) or use a different approach or library. AI can also be trained. It can read your code and suggest improvements. Developers can explain the problems they’re trying to solve. They can explain the desired outcome or any constraints. This is something thay traditional code genration tools will never be able to do unless they incorporate AI to their engine.
We have a number of examples of a fully functional games or apps generated by the AI. In some cases persons behind the solution claiming not to have any prior experience allowing to develop such program on their own and yet with the help of AI they were able to do so.
With the intergration of AI into our tools and frameworks we can generate large chunk of working code in the matter of seconds with just a single prompt. With the Infrastructure-from-Code approach to cloud AI can spin all the necessary resources needed to run our generated code at scale. This will be a massive improvement in productivity allowing for more experiments or iterations.
Personally, I strongly believe that we may be looking into a new era in software development. The Prompt Driven Development. Sure, we’re just at the very beginning but the future of software engineering seems to be the prompt-driven development.