After a relatively short public beta, GitHub Copliot is now available to the public. While it’s certainly impressive, I won’t be adopting it (or similar services like Amazon CodeWhisperer) any time soon, for a couple of reaons.
One concern is the licensing implications. These systems exist to insert non-trivial chunks of code derived from other sources into the code you’re working on. There’s no guarantee that such inclusion is permitted by the licence for those sources, so this potentially opens users up to significant legal risk. While there’s some informed analysis suggesting it’s not violating copyright law (in the US, at least), it’s very early days, and the true situation is only likely to become clear when cases end up before a court.
Microsoft, and so presumably by extension GitHub, have phalanxes of very smart lawyers on board, and I have no doubt that they’ve thoroughly understood the risk they’re taking. However, they’re also very well resourced, and will have been mainly considering the effects on themselves rather than everyone else. Just because the HMS GitHub is sailing confidently into the storm, it doesn’t mean it’s a good idea to hop into your canoe and paddle after them.
More fundamentally, frictionlessly dumping code snippets that you don’t understand into your editor seems to me to be a very bad idea. Copilot may save on some typing, but at the risk of not knowing what you have at the end. Brian Kernighan said that debugging is twice as hard as writing a program in the first place. Copilot only addresses the second, while robbing you of the context you need to do the first.
I’m not against the idea of AI assistance — that would be an odd position to take for the CTO of a company aiming to provide exactly that in the context of surgery — but Copilot and its ilk seem to me to sit in a kind of coding uncanny valley. The results are convincing enough to be dangerous. In time, the performance of these tools will get even better, and more importantly we’ll get to grips with how humans and AI can work on code together. Until then, I’ll be flying solo.