Copilot is an AI-based code-generating plugin for popular IDEs. With Copilot, we can write a comment explaining what we want to achieve, and it will generate the code.
It supports many popular programming languages. Copilot can adjust the code style to the style of the file we are currently editing.
The tool is quite flexible when we describe the code we want to generate. We don't need to write detailed instructions to get what we want unless our expectations are extraordinary. If we need to be meticulous, we can provide examples of input data and the expected output.
What surprised me the most, we can describe the code in many natural languages, not only in English. For a test, I wrote a code comment in Polish and German. In both cases, Copilot generated valid code according to the specification.
If Copilot can generate error-free and efficient code, it could replace the need for programmers, right? Should we worry?
Mediocre programmers are doomed
An author and entrepreneur, Seth Godin, claims, "Mediocre copywriting is doomed."
"GPT-3 and AI have already replaced mediocre copywriting. There's a new service online that can write copy better than half of the copywriters I know."
You can use an AI-based tool to generate a sales email, a landing page, or a marketing slogan. Such tools follow all of the generic marketing templates and hints. It will create a decent ad. In short, you will get something like the content created by a person who has spent only one week reading copywriting tutorials.
I tried to generate a paragraph of this article using Jasper, an AI Writing Assistant. It created this: "Copilot and similar AI-based code-generating tools are starting to replace programmers. While these tools have their benefits, they also have some drawbacks that could impact the workforce as we know it."
It looks good. Of course, it will fall apart if you try to generate a long text. Jarvis can't remember a long text, so it will start repeating the same information. Forget about fact-checking. You will get random dates, places, and names. Eventually, the output will resemble a work of a mediocre writer. Seth Godin was right.
The same may happen to programmers, especially front-end developers. Copilot knows how to connect to a REST API, get data from a backed service, and display information on a page.
With Vue.js and Copilot, I implemented a website in less than one hour. Note that I'm a data engineer. I have no clue about websites.
But there is hope.
I could generate a website, but it wasn't a good-looking website. It wasn't optimized for mobile devices either. Accessibility? Forget it. Copilot knows as much about accessibility as an average tutorial on the Internet — almost nothing.
Those are not skills of a mediocre front-end engineer, so Copilot can't copy them. It's too difficult.
Copilot can write SQL queries, use AWS API, write to databases, read data from Parquet files, etc. It does lots of data engineering work.
But it cannot analyze the data and the business requirements to determine the most optimal data partitioning strategy. It cannot design an ETL architecture.
Copilot can write a rollup query, but it won't know about the pre-aggregated data we already have.
It works on the level of individual code lines. It doesn't see the big picture.
Copilot does one thing well. It automates the part of the job when we spend time looking for a code snippet on the Internet and copy-pasting the relevant pieces.
I bet you have met many programmers who spend the entire day looking for code to copy. They don't care about the software architecture, refactoring, or code quality. They need detailed instructions (repeated many times) to understand what to do. They don't write code. They search for code to copy-paste.
Copilot is a huge threat to them. Mediocre programmers are doomed.
How to survive Copilot
Seth Godin suggests specializing in a copywriting niche. The same may work for programmers.
If you are an expert front-end developer specializing in implementing accessible websites with user-friendly design, no AI tool will ever become better than you.
Suppose you can take a dozen production databases, prepare the data ingestion pipeline, and design a data warehouse to gather business insights in one convenient place. In that case, you shouldn't worry about Copilot.
For you, Copilot will be a helpful tool that speeds up typing.
Copilot is like IntelliSense on steroids. It can not only finish writing the line of code for you, but it can also guess the following line.