The role of artificial intelligence(AI) on the evolution of software development is an active subject of debate among AI thought leaders. A few weeks ago, I wrote about the impact that AI can have on areas of the software developer lifecycle such as application testing. Today, I would like to start a series that deep dives into a more profound question: can AI help to create better software developers?
The idea of AI bots writing code has been one of the ultimate goals of AI since the 1970s. With the recent advancements on AI technologies, it feels that we are getting closer to, at least partially, achieve that goal. In my opinion, the debate about whether intelligent systems can produce better code is a bit overloaded. To simplify the debate and avoid unnecessary speculations, let’s break our augment into four fundamental questions:
1-What platforms are available today that can train AI systems to write better code?
2-Can AI systems help engineers to produce better code?
3-Can AI systems write efficient code autonomously?
4-What AI techniques can be used to implement intelligent systems that are able to write code?
I believe the answer to the aforementioned questions provides a solid framework to understand the role of AI in software programming. Let’s then start with the first question and explores what are the tools and data sources that we can use today to teach AI systems how to write better code.
Despite the advancement on AI technologies, we wouldn’t be talking about bots writing code if we didn’t have the programming knowledge and tools needed of rate training and evaluation of those AI systems. In the last decade, the software industry has created many platforms that have allowed us to start dreaming about the possibilities of AI-powered solutions producing code. Let’s review a few of those:
Five Technologies that AI Bots will Use to Write Code
Stack Exchange’s large repository of programming knowledge could result an indispensable asset for AI self-programming systems. AI algorithms could link Stack Exchange’s threads to specific sections of programs or even address errors produced by compilers or interpreters.
Github’s vast collection of open source code and projects could be used to train AI algorithms on the implementation of specific types of solutions. AI algos could correlated specific requirements or sections of a program with GitHub code that could be incorporated into a program.
APIs are one of the technological artifacts that can simplify the creation of AI algorithms that write code. APIs provide a consistent model to request data and execute business logic in systems in a way that can be easily adapted to AI programs.
Serverless computing stacks such as AWS Lambda or Azure Functions provide a universal model to develop and execute atomic functions that perform isolated tasks. AI algorithms could leverage serverless computing stacks to deploy and execute or even reuse specific parts of a program using a consistent runtime.
Algorithm repositories such as Algorithmia enables the discovery and execution of algorithms using a consistent protocol. AI bots could leverage algorithm marketplaces to discover algorithms based on a specific criteria or requirement of the target program.