The sudden acceleration of digital transformation caused by the COVID-19 pandemic revealed how unprepared most companies were. One of the biggest problems they still face is the “app gap”, which is the lack of applications that end users need to do their jobs effectively. Low-code and no-code tools are part of the way to bridge the gap by automating UI builders and robotic processes, but there’s still a lot to do.
One option is to use machine learning to increase developer productivity. We’ve already used basic rule-based tools to provide code completion and help with method publishing, so we’ll go a step further and apply common design patterns based on vast datasets of public code. Want to share methods, which algorithms are used in which context, and how do developers utilize public APIs?
GitHub Copilot: AI Coding Assistant
That’s what GitHub did. Uses OpenAI’s Codex machine learning model (Language model focused on the familiar GPT-3 code) Build and train services that work in the code editor and suggest the next steps as you work.Call it First officer, GitHub describes it as an “AI pair programmer”. This is an interesting view, suggesting that Copilot is a collaboration tool rather than a normative tool.
Copilot is trained in millions of lines of code in public repositories. Installed as a Visual Studio Code extension, Copilot works within the context of the current editor window, providing suggestions based on what you type and giving feedback on usage details. Private code will not be used to train the service with the new code sample. The only signal is the code you are using.
You shouldn’t expect the code that Copilot generates to be correct. For one thing, this type of application is still in its infancy and there is little training other than the initial dataset. The proposal should improve as more and more people use Copilot and take advantage of how it is used for reinforcement learning. However, you need to decide which snippet to use and how to use it. You should also pay attention to the code that Copilot generates for security reasons. It’s not possible to audit all the code that GitHub uses to train Copilot. Even with tools like Dependabot and CodeQL security scanners, there is a lot of low quality code that shows bad patterns and common bugs.
Despite the risks, Copilot has some interesting ideas. How to get a comment and convert it into code, or suggest a test that you can use as part of a comment. Continuous integration / continuous deployment (((CI / CD) Process. Incorporating AI into the development and testing parts of the CI / CD devops model makes a lot of sense to ease the burden on the developer and allow the developer to focus on the code. But again, you need to make sure that these tests are appropriate and provide the right level of code coverage. You are not limited to one solution at a time. You can page the results in the editor to see the best solution before accepting it.