Alexander is disappointed that GitHub Copilot exists as a product for a number of reasons.

I've just listened to episodes 420 & 421, where you mentioned GitHub Copilot a couple of times. I want to share my 2 cents on the topic, if that’s alright. I’m a professional software developer, though, so my view is biased as hell. I apologise in advance.

I’m disappointed that GitHub Copilot exists as a product for a number of reasons.

1. It has learned to code by observing code on open source projects GitHub. You know, the code, that is full of bugs and security vulnerabilities. But Copilot doesn’t know that, so it’ll happily suggest a buggy implementation.
2. What about dependency management? Let’s say one tries to use Copilot for a python web development. Now, imagine that the project solves 2 tasks, which are typically solved by 2 different web frameworks. Under normal circumstances you choose a single framework and use it for both tasks. I suspect that Copilot will produce code using 2 different frameworks, which won’t play together at all.
3. Licensing thing. Copilot does not attribute the produced code, so one may unknowingly include code from, say OpenJDK. Oracle will surely be all understanding.
4. (hugely biased point) Copilot tackles the actually interesting and creative part of software development. Why not focus on code review instead? It’ll be helpful to have a bot that finds code smells, inefficient implementations, lack of test coverage for extreme cases. Why not invent tools to automatically create reproducers from user bug reports? A bot that tries its best to find a minimal number of steps to reproduce a bug would be invaluable. Why not tackle automatic issue triaging? …

Summing all the points, I don’t understand who the target audience of the product is.

1. Surely not the professional developers in an existing project. Copilot won’t be following the established guidelines.
2. Surely not the professional developers in a new project. You’ll spend all the time reviewing Copilot generated code for potential bugs and incompatible dependencies usages.
3. Hobbyist developers? Well, if you find it fun to constantly review code instead of just writing it.
4. Newby developers? Absolutely not. When you’ve just entered the field, having a tool produce a stream of bugs that you’ll spend days trying to figure out is unhelpful and demotivating.
5. Some new role? It has to be a different product, Copilot still requires developer input.

So, I think it’s not a good product. It’s a good scientific experiment in ML, I suppose. But not a product. I’m afraid it’s yet another instance of “we built it because we can, but didn’t think whether we should”.

Thank you, and sorry for the rant.