12

Why GitHub Copilot is not a Threat to your Job

 3 years ago
source link: https://dev.to/mcsee/why-github-copilot-is-not-a-treat-for-your-job-180a
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client
Cover image for Why GitHub Copilot is not a Threat to your Job

Why GitHub Copilot is not a Threat to your Job

Jul 3

・2 min read

Software Design (24 Part Series)

TL;DR: If you are a good software designer Copilot will not help you very much.

What is GitHub Copilot?

GitHub Copilot is an AI pair programmer.
It was trained with a huge coding database of common small routines.
It also can recognize bad comments and create imperative code from them.

GitHub copilot is a text transformer similar to GPT-3.

It was developed by the same company: OpenAI.

How does it work?

The OpenAI Codex engine powers GitHub Copilot.
It was trained with a lot of source code and also natural language.

To use it, we must apply to their waiting list. The approval process is fast.

We add it as a Visual Studio Code Extension that interacts in real-time with GitHub.

Benefits(?)

Autofill

Copilot can predict anemic structures once we describe their accidental data.

They are suitable for implementative and anemic code generation.

Code wizards are a present problem. Copilot is a brand new one.

Bad comments to code

It converts bad comments (those that should never be present in our code) to straightforward algorithms.

We can assume that the training set was filled with bad implementative commented code.
We shouldn't rely much on the algorithm's declarative.

Structural tests

CodePilot can generate tests on setters. These tests are coupled to implementation and fragile.

They test our getters, so they don't add much value to validating our system's behavior.

More insights here.

Should we worry about it?

Not now.

If you read the benefits above, most of the Copilot code belongs to the code smell area.

Very soon, transformers like Copilot will replace lazy and implementative programmers.

What should be doing right now?

We need to be cleverer than it.

We need to create great behavioral models far from implementative structural data

The problem copilot is solving right now tackles software main mistakes. Thinking of programming as just dealing with data instead of behavior.

Once we decide to grow up and build serious software instead of dealing with strings and dates, we will push our jobs a few years away from this fancy robot.

Please do write me a line below with your thoughts on this.

Software Design (24 Part Series)

Discussion (1)

pic

CollapseExpand

Everything you described in your post sounds like GitHub Copilot could help with getting rid of the tedium involved in the field. If anything, this feature should be a blessing and allow developers to focus on solving actual business problems instead of writing tests for getters and setters.

One thing I wonder... given the track record of procedural generation, what kind of random unexpected problems emerge from generated code? Another thing is how does the machine learn certain insights a developer learns from experience (i.e. when to properly use one pattern over another)?

I do think such a feature should be out of the risk of a junior developer not because I'm a sadist, but because experience is a good teacher and sometimes the best way to learn is by doing.

Comment button Reply


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK