Will GitHub Co-Pilot Replace Developers and take their Jobs?

OpenAI and Microsoft have come together to release a technical preview of GitHub Copilot, an AI-based service that will help developers by suggesting how to complete the code they are writing.

GitHub CEO Nat Friedman, presenting the news on Twitter wrote that the company has been working on it for a year and that the functionality is already being used internally. “ It's a piece of the future teleported backward in 2021,” he enthused.

What is GitHub Co-Pilot?

It is an “AI pair programmer” that suggests whole lines of code or entire functions based on how you code and what you are working on.

It's basically a very advanced form of auto-complete. You describe what you want to do in a comment, and then Co-Pilot attempts to predict what you want to do.

How does GitHub Co-Pilot work?

Copilot generates code recommendations using OpenAI’s Codex, an artificial intelligence model based on GPT-3. The codex was trained on billions of lines of open-source code from GitHub, many of which are publicly available on GitHub itself. which allowed the model to learn common code patterns that it harnessed to generate programming suggestions.

When writing code, GitHub Copilot suggests how to complete the string or function as you type. You can scroll through the suggestions, accept them or reject them.

Currently, the programming languages that it works best with are Python, JavaScript, TypeScript, Ruby, and Go. Over time, the service should improve based on how you interact with him, whether or not he accepts his suggestions

Developers Job Isn’t Just Coding

If we assume that "developer" is somebody who writes code all day long and does nothing else, then, in this case, I can see this AI replace some “code writers”

But in reality, a developer does a lot more than that. “writing code” isn’t a developer’s real job.

You can argue that a programmer's main job isn't writing code. It's understanding the business requirements fully and turning them into an abstract form that can then be translated into code.

Saying “a software engineer’s job is to write code” is like saying, “an author’s job is to write paragraphs.” While true, it misses the point. Not any author could have written Lord Of The Rings

Writing code is the easy part. Architecting for scale, meeting customer requirements, and dealing with existing design constraints is an order of magnitude more complex.

Nowadays, the software developer is the architect, engineer, and construction worker.

The hard part of programming isn't programming. A magical tool isn't going to change the fact that the value that engineers bring is problem-solving not the coding skills (at least that's not the only thing that matters). We already have a lot of no-code visual tools like CreateML for building simple models based on transfer learning. GitHub Co-Pilot would be nothing but a great addition to that suite to help programmers speed up their workflow.

GitHub Co-Pilot Is A Productivity Tool

You should view GitHub Co-Pilot as a tool to help improve productivity and perhaps improve code quality, It’s a replacement for searching for code fragments on Stack Overflow - just use the AI to produce the fragment that you need. But, you need to know what you are trying to do in the first place.

Therefore it's more of a smart “Suggester”. And that's why they call it a copilot, right? It's not the pilot. It's a copilot.

In my perspective, no AI program will ever completely replace developers. These applications are merely an additional tool that aids us in writing code more quickly. They are, in my opinion, time-saving tools.

It’s All About The Human Factor:

Humans are creative and software development requires creativity. Programming is a mix of art and science and problem-solving requires some deeper thinking than merely generating code in a visual layout. Moreover, comprehending complex requirements to write production-level code isn’t something AI is ready to do yet in a foolproof way.

Is GitHub Co-Pilot Reliable?

It’s harder to read code than to write it. An inexperienced programmer may not be aware of issues with Copilot’s code whereas a veteran would prefer to write the code instead of reading what Copilot has generated.

However, there are bigger problems than Copilot writing low-quality code. According to GitHub’s FAQ insecure coding patterns, flaws, or references to outdated APIs or idioms can be found in a lot of public code. When GitHub Copilot generates code suggestions based on this information, it may generate code that contains certain unwelcome patterns.

In Conclusion:

Copilot does not develop a completely functional application for you. You can't, for example, write a comment like / develop an e-commerce app and expect Copilot to take care of it. It won't even be able to set up a very basic Express server for you.

As a result, these AI applications aren't very useful in complex circumstances. They are, nevertheless, incredibly handy for simpler tasks and boilerplate code.

So even though applications like the Copilot are helpful and super powerful, I still believe we are far from being replaced by them. GitHub Co-Pilot would never kill skilled developers' jobs If at all anything, it’ll make the programmer's job more productive as they’d have specific roles devoid of elementary tasks.