Why GitHub Copilot is not a Threat to your Job
If you are a good software designer Copilot will not help you very much.
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.
Code Smell 05 — Comment Abusers
Code has lots of comments. Comments are coupled to implementation and hardly maintained.blog.devgenius.io
GitHub copilot is a text transformer similar to GPT-3.
It was developed by the same company: OpenAI.
I've Recently Learned About GPT3 - This is my Journey
Your browser does not support the audio element. I've been very excited since GPT-3 release almost a year ago. I…maximilianocontieri.com
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.
Code Smell 70 — Anemic Model Generators
TL;DR: Do not create anemic objects. Much less with automatic tools.blog.devgenius.io
They are suitable for implementative and anemic code generation.
Code Smell 01 — Anemic Models
Your objects are a bunch of public attributes without behavior.blog.devgenius.io
Code wizards are a present problem. Copilot is a brand new one.
Laziness II: Code Wizards
Code generators do our hard work. But we don’t need them anymore.codeburst.io
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.
Code Smell 52 — Fragile Tests
Tests are our safety nets. If we don’t trust on their integrity we will be in great danger.blog.devgenius.io
They test our getters, so they don’t add much value to validating our system’s behavior.
Code Smell 68 — Getters
Getting things is widespread and safe. But it is a very bad practice.blog.devgenius.io
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.
How to Find the Stinky parts of your Code
The code smells bad. Let’s see how to change the aromas.blog.devgenius.io
Very soon, transformers like Copilot will replace lazy and implementative programmers.
(Most) Programmers are losing our jobs very soon
Are you a declarative programmer or a 'close to the machine' one ? if you are on the second group you are going to lose…maximilianocontieri.com
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 one and only software design principle
If we build our entire paradigm on a single rule, we can keep it simple and make excellent models.codeburst.io
The problem copilot is solving right now tackles software main mistakes. Thinking of programming as just dealing with data instead of behavior.
What is (wrong with) software?
Software is eating the world. Those of us who work, live and love software do not usually stop by to think about its…codeburst.io
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.