There is a lot of annoyance in the boilerplate of a program - "set up a scaffold for this, template that, convert data from this format to that format". The AI tools I have experimented with are good at this and for sure this is useful.
But no one can read my mind! If I have to get increasingly specific in what I am telling the AI, and have to formulate my writing style in a way that keeps things very precise, I am essentially programming in another language. Albeit one where the output is uncertain and I have to check everything.
It is possible that someday it reads in an entire codebase (say, millions of lines of code), and I can describe a new API I need and it implements the entire thing. This would be quite useful.
That was my exact thought. I don't use copilot but I'd wager that at least 40% of the code I check-in is autogenerated as well. A fresh modern JS project is 15+ files full of boilerplate around a single "hello, world" statement.
If there was a metric for how much net new application business logic was written by copilot, that would be far more interesting to study.
I just started using Copilot and so far, it really does seem to save me time with rote stuff like imports, function definitions, and where I would otherwise be copying / pasting code I just wrote (say, while writing a bunch of tests). Even when it gets those slightly wrong, it still saves me time or at least makes it feel that way.
So overall I'm honestly pleasantly surprised with it. It feels similar to when I got a car with adaptive cruise control - suddenly I'm not thinking about maintaining the correct speed and following distance on the highway, which makes driving for a while require far less mental effort.
I know I probably could have accomplished something similar by setting up snippets or whatever, but I installed it and it immediately started doing what I wanted without having to ask.
Nifty.
To me, depending on the language, it's less useful than coc-nvim (too slow, breaks my tempo, too much added code, sometimes add stuff I did not ask for, or use old, inefficient patterns you only really find on shitty websites), so I still write the 'clever' part with vim, but when I write tests I now use VScode because copilot is really helpful (and it's funnier to use it than to write unit tests that work).
For languages I do not know well however I use it for everything. But I wonder if it keeps me from learning tbh.