Copilot isn’t actually bad for developers, it’s just that you need to be careful with it and recognize its limitations.
Writing a bunch of REST endpoints for an API and need to implement all the typical http verbs, and you already have all the matching methods for reading, updating, and deleting values in a complex SQL database for each endpoint to call? Copilot can turn a ten minute chore into a ten second one. Very handy.
Writing those complex SQL methods in the first place? Yeah… Copilot will probably make a ton of mistakes and its work will need to be triple-checked. You’ll save time just doing it yourself if you know how. (And if you don’t, you have no business calling yourself a developer.)
Copilot is best for easy boilerplate and repetitive code. Problems arise as soon as you ask it to get “creative.”
One time I decided for shits and giggles to just keep pushing tab and see where it went. It didn’t take long for it to enter a useless recursive loop, hallucinating a new iteration of the same thing on each line.
It definitely isn’t gonna magically think up new algorithms for you. I don’t know what everybody is scared of. It ain’t even gonna replace my kid programming on Scratch.
Copilot isn’t actually bad for developers, it’s just that you need to be careful with it and recognize its limitations.
Is it me or is this a weird statement for what’s supposed to be an exact science?
Imagine working in construction and using a level and you’re told “it’s not that it’s a bad level, you just gotta be careful with it”.
How much margin for error should we allow for getting our code right? Is it now acceptable if we only get 80% right?
As a software developer I promise you that software development is very much not an exact science.
Programs are complex and there are so many different ways of achieving the same thing that all code has problems and gets a bit messy in places. You can test, but it’s not easy to ensure that everything works the way it should.
The best code you’re going to get will probably be in the space industry, but even that will have bugs. The best you can do is make the code robust even when bugs make things go wrong.
In many cases copilot will do just as well as a junior developer. It’s very good at repetitive tasks and filling gaps in your existing code.
Always ask it to write tests for the code it generates. Of course, then you have to validate that the code works AND that the tests work.