GitHub has released an AI-powered coding assistant that can actually write code for you. Dubbed as GitHub Copilot, the new AI tool might transform the way programmers do their work.
Jointly developed by GitHub and OpenAI, the Copilot uses OpenAI Codex AI platform. The AI has been pre-fed with thousands of open source code projects, drawing from vast code repository that GitHub itself is. By using the source material. Copilot has learned how to write code, entire functions and even entire algorithms.
Basically, Copilot can understand even very short hints, like a function call and determine what that function should do - and then write the entire function on its own. So, it is not your dad's old auto-fill service that is available on all code editors, but a really a tool that could take out the most mundane parts of any programming.
Copilot also supports basically all the known programming languages, as programming itself tends ot follow the same rules, regardless of the actual language used. GitHub says that currently it works best for most used languages, such as TypeScript, Ruby, Python, Go and JavaScript. What is even more impressive is the fact that Copilot adapts to each programmer's own programming style and tried to generate code that resembles the programmer's coding style - making the code more readable for its "main pilot".
Copilot can write entire functions, but it can also take a look at an entire code and suggest to replace it with more sophisticated way to perform the same task. Luckily, the "main pilot" is still in charge and can modify the Copilot's output as wished.
As it is powered by an AI and machine learning, Copilot will get better each time it is used and each time it gathers more data from source codes. While predicting future is always tough, it could be easily guessed that Copilot and similar tools will perform huge chunk of day-to-day programming tasks in few years' time - leaving programmers more time to focus on architecture of the software instead.
GitHub Copilot is currently in closed beta, but GitHub plans to launch it once the beta testing is over. Currently the Copilot is limited to Visual Studio Code editor and it can only look at one file at the time, so it wont be able to understand the dependencies between various project files. Both of those limitations are going to be lifted in future.
Basically, Copilot can understand even very short hints, like a function call and determine what that function should do - and then write the entire function on its own. So, it is not your dad's old auto-fill service that is available on all code editors, but a really a tool that could take out the most mundane parts of any programming.
Copilot also supports basically all the known programming languages, as programming itself tends ot follow the same rules, regardless of the actual language used. GitHub says that currently it works best for most used languages, such as TypeScript, Ruby, Python, Go and JavaScript. What is even more impressive is the fact that Copilot adapts to each programmer's own programming style and tried to generate code that resembles the programmer's coding style - making the code more readable for its "main pilot".
Copilot can write entire functions, but it can also take a look at an entire code and suggest to replace it with more sophisticated way to perform the same task. Luckily, the "main pilot" is still in charge and can modify the Copilot's output as wished.
As it is powered by an AI and machine learning, Copilot will get better each time it is used and each time it gathers more data from source codes. While predicting future is always tough, it could be easily guessed that Copilot and similar tools will perform huge chunk of day-to-day programming tasks in few years' time - leaving programmers more time to focus on architecture of the software instead.
GitHub Copilot is currently in closed beta, but GitHub plans to launch it once the beta testing is over. Currently the Copilot is limited to Visual Studio Code editor and it can only look at one file at the time, so it wont be able to understand the dependencies between various project files. Both of those limitations are going to be lifted in future.