Github Copilot a few thoughts

At the end of October GitHub send me an email with access to the copilot preview.

Since then I have used as much as I could.

My full stack assistant

As we all know, at work we never have to deal with only one programing language and with the copilot, I jumped on any project with no fear.

I had to write shell script automation to download all the repositories that we have a check for log4j.
No worries, the copilot had my back!

Had to fix a bug in a java project
No worries, the copilot had my back!

Had to add a dependency to the pom.xml
No worries, the copilot had my back!

Had to write some CSS to add some style.
No worries, the copilot had my back!

JS, go, rust, sh, js, HTML, CSS… you name it
No worries, the copilot had my back!

Is not all gold that it shines

Is not perfect and it cannot replace a human. Although it keeps track of the context of the application to generate suggestions and code, sometimes you need to read the documentation of the language/library or google for an answer.

While I was trying to make the svelte application, I had to go to the documentation to learn how I import/export a component.
As well I had to read the documentation to understand how the components are communicating with each other.

In the case above having a human as a pair programmer is so much better.
Of course, nothing is perfect and you can always just google it.

Debugging

Completely useless !!!

You have to analyze the code.
You need to read the output and google for an answer.

In this case, a human will probably be more helpful.

Project structure and configuration

Completely useless !!!

This is where the experience of a developer shows up.

Is not just a copilot that has no idea how to structure a project, I have seen so many developers that … I guess the best thing they can do is to do something else entirely, like cleaning the office windows.

Cleaning the windows is a job copilot will never do, so their job is SAFE

Where does copilot really shine?

Writing code!

Again, an experienced developer will know when to apply copilot suggestion or discard it and add/improve the comment.

Copilot needs a lot of supervision (very interesting word) in order to have the result you are planning to. Many times it just repeats the same few lines of code or adds a lot of code that we don’t really need.

But in order to make it generate the correct code, the copilot requires comments.

YEAH, BABY !!! comments in all of the code.

You can now see exactly what the developer was trying to achieve with that line of code. No more “why, what, wtf, who wrote this code?🤬 …. ohh that why 🥴”

The code with copilot is documented through comments, the industry tried to push developers to write comprehensive comments in the code and it failed. But know with copilot coding is just another kind of experience.

Junior, Medium 🤷‍♀️, Senior Developers

So how will copilot impact the different levels that developers are at?

Junior: I think they are the most punished by the copilot.
Copilot needs a lead programmer, one that actually knows what must be done. Otherwise, it will corner you into an impossible bug or a project that has a chaotic structure, or code that not even copilot is capable to understand.
But at the same time, a smart and passionate junior developer can learn more and faster by just working with copilot.

if you are a smart and passionate junior developer learn discipline and copilot is no problem to you

Medium: this is where my skin gets bumps.
A developer that writes code because is his job is where the copilot will help create abominations. Those kinds of medium-level developers were a threat to humankind already, with copilot they can finally show their final form.

I have to say, not all medium developers are like that. Some awesome medium-level developers are great. But there is a race, we all know at least a bunch of those developers, that write code with no separation of concerns, bad/nonexistent indentation, random spaces, var1 var2 naming, and so on.

Senior: This is where copilot is going to be actually worth paying for.
Those developers will seem to be on Adderall.
At least 2x speed into writing code.
They will benefit the most from it.

Copilot needs a lot of supervision

This is very interesting since copilot is not actually running on our machines but it actually sends context about our project to Github/Microsoft and receives the suggestions, it kind of indicates that we are training it.

At this point, since we will all be training it, how much will Microsoft charge us for it?

Also is this a fair use?
Us doing all the hard work for Microsoft and then Microsoft will also ask us for money for it…

Conclusion

I don’t think it will be able to replace developers, maybe in 10 years, but for now, we are safe.

I think that developers with copilot will have an advantage, and everyone will HAVE to buy into this helper.

I personally really like it. I have been using it for the past 2 months and is the first time that I actually find AI being used properly (except google search) as well as being useful.
Copilot gave me an idea of how I should implement ML into the software that I am writing and how to benefit from it.

All I hope is to not be expensive. 5$/month I think is doable for all the value that it brings.

What do you think about the copilot?
Leave a few thoughts in the comments

Thank you for reading and as always,
If you enjoyed please leave a few claps 👏👏👏
As it really helps me a lot.

Have a lovely day.

--

--

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store