← Back to context

Comment by morelisp

2 years ago

I don't find basic autocomplete useless, although I probably use it less than most people. (For example, I rarely write Java and when I do I don't use long names or deeply nested structures and I don't implement equals etc. by default.) I think people use autocomplete in two ways; when I use it I know what I want to be in the code and it's a way to type 30 characters by pressing 3 keys or whatever. But I also see a lot of people use it like "I don't know what to do next, what methods are available?" And this is usually to the detriment of the code quality.

Copilot is not like autocomplete. It only works in the second mode, because any nontrivial code it generates needs to be read, considered, and understood. (And any trivial code it generates can be done by autocomplete or long-existing non-AI tools.) This is especially true given LLMs' hallucinatory behavior - by definition it will often spit out something that "looks right" even if it's absolutely not - and such code is harder to review than code that looks obviously wrong.

So if you do use autocomplete in the second mode, maybe you find Copilot a super-powered version of that. And if you have the same weaknesses as Copilot, reviewing its code after it's done writing it is probably not any different than reviewing your own code after writing it, so for you it takes the same amount of time. For me, that's not the case.

When I used it, and when I see others use it, Copilot is like an impossibly overenthusiastic junior developer I will never be able to teach better habits to.