DEV Community

Cover image for Some Experiments with GitHub Copilot

Some Experiments with GitHub Copilot

Rahul Banerjee on July 05, 2021

I recently got my hands the GitHub Copilot extension for VS Code and it's amazing (borderline scary) The examples below are in Python Fu...
Collapse
 
jonrandy profile image
Jon Randy πŸŽ–οΈ • Edited

Looks very similar to TabNine which I've been using for ages - although Copilot seems to be totally OTT in comparison. TabNine's suggestions are fairly conservative, but incredibly helpful - it really does feel like it's reading your mind sometimes.

This level of completion though - especially the very large ones, is an absolute disaster for the levels of competency in the industry, and very bad for people who are learning. It's almost an automated StackOverflow copy-pasta machine.

Possibly useful in the right hands, but - as they say - with great power, comes great responsibility

Collapse
 
rahulbanerjee99 profile image
Rahul Banerjee

Agreed, I wouldn't recommend this tool to people who are learning. The generated code is just going to seem like a foreign language.

And as you aptly put it "with great power, comes great responsibilities".

Collapse
 
seyal84 profile image
AmjD(AJ)

Not really a bad tool for learners as well.

Thread Thread
 
jonrandy profile image
Jon Randy πŸŽ–οΈ

An awful tool for learners

Thread Thread
 
seyal84 profile image
AmjD(AJ)

Lol not really. Depends what kind of a learner you are and how good are at learning new technologies.

So you support people using stackoverflow but not such tools lol. Double standards

Thread Thread
 
rahulbanerjee99 profile image
Rahul Banerjee

If you are learning a language like French, it’s okay to use a French to English Dictionary for translations and grammar rules and stuff. But if you just use google translate and claim you are learning French, lol you are in for a surprise.

And no, it doesn’t depend on what kind of learner you are. It’s a good short term solution to get your code working and stuff but in the long run you won’t be learning much.

Thread Thread
 
rahulbanerjee99 profile image
Rahul Banerjee

To add to my points above, when you use something form stack overflow, more often than not there is an explanation for the code and why it works. Copilot does no such thing.

Thread Thread
 
seyal84 profile image
AmjD(AJ)

True but not true.

I think being an experienced programmer you are just being over defensive.

If you think that in today's IT such tools aren't good for new learner then probably you aren't even aware of how quickly IT is changing.

New learners can use such tools to improve their codes and learn from it but these aren't just to fully rely on it.

On stackoverflow people post full codes or atleast solutions so it isn't as diff from copilot if you talk about general context

Collapse
 
andreidascalu profile image
Andrei Dascalu

@seyal84 no double standards at all. On SO you get discussions and a lot of the offered code comes with explanation (often with a degree of depth outright or through the discussions there).

Collapse
 
justjordant profile image
Jordan Taylor

So true, I do feel like this is just a more advance autocomplete like Kite, Tabnine. But as you said this can lead to possible some cases where people would be more relient on this, then actually know line by line that is going on, especially for those who are learning.

Collapse
 
shnydercom profile image
Jonathan Schneider • Edited

Have you tried googling some of the generated code? The tictactoe seems like an example where the AI ran on the natural language part (so the code comments) and the associated code is copied. I would actually prefer an AI to recommend me the full link to SO or GH so I can read the rest of the comments, or even contribute to OSS if the suggestion is faulty. All the copilot examples I saw don't modify the syntax tree much

Collapse
 
rahulbanerjee99 profile image
Rahul Banerjee

I haven’t searched it up but I will. I was under the impression that the tool was actually generating code but I think instead of generating code, the tools just suggests code snippets from public repos. So it’s just an over-hyped search engine Lol.

Collapse
 
shnydercom profile image
Jonathan Schneider

yeah I got the same feeling. Most devs think naming variables is hard, and this tool just has too many "good" names. Now "good" names mostly come from review processes, where the functionality was unclear before. Let us know what you find out :)

Collapse
 
cybeartron profile image
Cybear Tron

Salute!!!! Nice one here!! Thanks I wanted to know about the copilot myself this helped !!! :D