AI in Software Engineering
Artificial intelligence software tools provide software developers with access to autocomplete-like functionality that simplifies the process of writing code. It does this in real-time, contextually, as the developer is working in the code editor. This instant insight and feedback increases a developer’s ability to produce quality code at a faster pace. Code autocomplete allows engineers to use more of their time testing and battle-hardening their code as opposed to completing monotonous and repetitive tasks. Alongside this, code-writing capabilities are fantastic for developing software. The AI’s deep-learning models offer code snippets, or even entire solutions, to problems developers need to solve daily. Overall, artificial intelligence has been an amazing opportunity for developers to increase their efficiency and reduce errors.
AI Software Alternatives
Like all new technologies, the market has several options to choose from. The first code-helping AI that appeared was GitHub’s Copilot. This software integrates with a developer’s IDE through an extension that provides solutions much like a smart phone autocomplete. Tabnine is another offering that uses development AI to assist development. It too can be installed into the most popular IDEs. In contrast to those two options, OpenAI’s ChatGPT is currently used in a web browser. Rather than beginning to code and waiting for autocomplete help, or prompting the AI within the files themselves, developers use ChatGPT by prompting it to write code through a text input.
One of the most useful features of coding AI is its ability to intelligently infer the code that is to follow what’s currently being written. A good example of this can be seen when creating constant variables that follow a similar structure. In the example below, we demonstrate how Copilot greatly reduces the time spent typing out large constant files. After providing Copilot with the first constant object containing information about the state of Alabama, the AI kicks in and begins autocompleting the other states’ information.
Along with excellent autocompletion, AI can lay the foundation for entire functions/components. But this is a bit more hit or miss, at least at the time of writing. To have AI write a component for you, just input what you want from the component in the comments.
As optimistic as this seems, there are limitations in the extent that AI can be leveraged for code creation. For example, Leetcode is one of the most well-known online platforms used by software developers to practice programming skills by solving coding questions. A recent benchmarking of OpenAI’s ChatGPT4 measured how well it solved Leetcode coding questions categorized as easy, medium, and hard. Against a top score of 100%, ChatGPT4 scored 76% on easy problems, 26% on medium problems, and 7% on hard problems. The big takeaway here is senior developers won’t be obsolete anytime soon, which is good news for us. But leveraging AI for coding efficiency is a still a big win.
AI and Future
There are already many situations where AI greatly increases the speed at which software is written. As these AI tools become more stable and intelligent it will be up to software developers to judiciously leverage their power to further increase workplace efficiency.