AI for Software Development: Can Machines Write Good Code?
You hear the word AI everywhere you go. It has influenced all spheres of life and all domains of business. No wonder AI is now capable of writing computer code. This is indeed bad news for developers, who may lose their bread!
Hang on. Can machines write good code? We will soon find out.
There are a plethora of programming languages and which languages to learn first is a big question for developers. The situation can become even more tricky if AI systems start writing code, and that too in a variety of languages.
Let’s first have a look at some of the machines writing code.
AI-based Tools for Writing Code
We will discuss some of the popular AI-based code-generation tools. They have been developed by corporates or University students, and each of them is unique in its own way.
Microsoft in association with Cambridge University has developed an AI system called DeepCoder. This tool can write code after going through a huge code database. It first comes up with code fragments and then tries to align them in a logical sequence.
Its efficiency also improves over time and is very useful to non-coders. In future, the creators expect the tool to generate code based on the program idea given.
#2 Diffblue: automating unit tests
Diffblue is a company that originated from the Computer Science department of Oxford University. Its developers have generated an AI tool that can generate unit tests for code.
Diffblue’s tool uses artificial intelligence to mimic the way human developers carry out tests of their code. The tool takes only a few seconds to conduct the test.
This technology of Diffblue allows anyone from aspiring programming students to a coding professionals to save time.
You may also like:
This is basically a code completion tool that was launched in May 2019. It is a successor of IntelliSense, which provides a list of recommendations in alphabetical order. IntelliCode recommends the most suitable function based on the developer’s previous usage.
The more you use it, the more accurate it becomes. The tool has been fed with code of thousands of GitHub open-source projects that had 100 stars or more.
Although the code can have errors, it enhances the productivity of developers.
#4 GitHub Copilot
This tool can auto-generate code using AI, helping professionals to speed up their work. It is powered by Codex, a new AI system created by OpenAI.
The tool gradually adapts to your coding style and preferences. Although, it has received some critical reviews as well. The Free Software Foundation has called it unacceptable and unjust.
Copilot requires running softwares like Visual Studio Code editor, which are not free.
fast.ai blog mentions that the code written by Copilot is not very good and poorly refactored. The author says that the technology is still in its early stages.
This tool does not generate code completely but has evolved into a fully-fledged code completion tool based on AI. It supports over 20 languages and 15 editors, including vim and Android Studio.
It was developed by Jacob Jackson during his student days at the University of Waterloo.
#6 Code T5
SalesForce researchers have built an open-source programming language model called CodeT5. This model is based on Google’s T5 framework.
The model was trained using 8.35 million instances of code from GitHub repositories.
Code T5 has three capabilities for software programming:
Text-to-code generation: It can generate code based on the description of requirements in natural language.
Code Auto-completion: Entire function of code is completed based on the target function name given.
Code summarization: Description of the code function in natural language.
#7 OpenAI Codex
The model has been trained on billions of lines of code readily available in the public domain. It is made available to developers and companies through a private beta to build tools and integrations.
Data Scientists can write queries in English, which Cogram translates into SQL queries. It supports SQLite, MySQL, Amazon Redshift, and PostgreSQL.
Python and Julia developers can integrate Cogram with Jupyter Notebooks to generate code. It allows Data scientists to generate visualizations based on mainstream Python modules.
DeepMind has created an AI tool capable of writing code to solve common problems. It is not good enough to replace software engineers just yet, but it can automate basic tasks.
The tool is capable of parsing, understanding a written challenge, and producing a coherent, workable response.
AIXcoder is an intelligent programming buddy for your development team. It takes care of your code, allowing you to work on more critical and complex tasks.
AIXcoder’s deep learning models make use of millions of open-source code for training. As a result, it can suggest codes that are appropriate to its context. You can use it in offline mode if you are concerned about your code’s data security.
Ponicode uses AI technology to write codes swiftly and maintain code quality at the same time. It takes only minutes to get installed, and you can immediately start app development, eliminating monotonous processes.
The Bottom Line…
Having seen several code-generation tools, we can safely say that AI can develop software, but it is far from perfect. Machines cannot write good code as of now; they can only generate code based on the code repositories fed to them.
However, with time, machines will only get better at writing code. For now, they can only help in code completion or generating code that is not error-free. AI can be used for software development but with caution as it is far from becoming perfect at it.