I’ve been using Github Copliot since beta. In general I find it an extremely nifty tool, and definitely recommend it to developers of any skill level to try out.
There’s a lot of complaints about Copilot, that IMO are somewhat valid, but also negated. For instance, Copilot is undeniably laundering FOSS code… But it’s also laundering proprietary code. Specific licensing aside, everything Copilot is doing here is lowkey making software much more collaborative and closer to at least some ideas open source stands for.
Another thing people bring up is Copilot would make you forget how to code. After almost a year of using it, I have to disagree. Things like setting up the environment, making architectural decisions, and integrations are always the hardest part about coding, and regrettably Copilot doesn’t help with that. Even if Copilot makes you “lazy”, so does any good tool.
The real problem is I don’t know what my code is doing anymore. It’s not that I don’t read what Copilot spits out, but when you don’t have to put in the effort writing it, you forget the details much more quickly. The obvious side effect is you spend much more time debugging your code, trying to figure out how it works, when you only wrote it a week ago.
It’s proprietary, so I wouldn’t touch it.
it is even worse as it is by Microsoft
There is FauxPilot which is an open source project that aims to provide similar functionality using a locally running model.
I’ve used copilot for more than a single line of code about twice in the past year. IMO people are just using it wrong and I can never relate to these posts. For me, it’s an advanced auto-complete and saves me a ton of time. I couldn’t imagine allowing it to generate a whole function for you. Using just one line at a time allows you to make sure you fully understand everything it has generated. I’ve never “forgotten how my code works”
Still though, would definitely like to see an open-source effort towards cracking this nut. There’s some longstanding projects that are Python-specific, but nothing like CoPilot
To be clear, hypersmart autocomplete is my main my use for Copliot as well, but when it’s still so mindless.
I think another big issue is that code can work but also be incorrect. A good example of this is using floating point for currency. The effort it takes to audit what Copilot barfs out to make sure that it’s semantically correct seems to be just as high as writing it yourself.
I think another big issue is that code can work but also be incorrect.
A lot of people say this, but I personally have not experienced it. On the contrary, most times I’m fighting with Copilot, it turns out Copilot was correct
That’s just the thing though, it will be mostly correct except for that one time that it’s not correct. Ultimately, it’s just using a heuristic based on what most repos in github do in this scenario, and majority of the time that will be the right solution. Thing is that you can’t just trust it because it doesn’t really have an understanding of what the code is meant to be doing, and if it’s correct majority of the time that just creates complacency.