I tried it for the first time today, so treat this with a grain of salt.
https://twitter.com/ayourtch/status/1539928018138931200 is my experiment. The code in question has a very specific format - it’s C with a lot macro sauce. I described the intent in the comment and pasted the includes lines. Then I started the #define of a unique looking token, and it added the lines with the correct boilerplate. What you see in gray is more boilerplate that it suggests when prompted.
I would dare to assert that “xxxayourtchtestxxx” is not going to be in anyone else’s code than mine.
So you can see the example of copilot generating completely new code.
Not saying it’s 100% of what it does - but this side looks very useful.
I also did a test with Rust: described a function canonicalizing MAC address, and then when it saw ![test] prompts, it started to make very passable unit tests for the function which was not even written yet - it was only the comment of what it would do.
Also a massively useful lever to have, if it can do so consistently.
My attempts to make it generate a bug-free canonicalization function didn’t work - but it was interesting to see it try different approaches based on the existing test code (and no, they didn’t always satisfy the tests, unlike one would expect :)
So this angle is “pair programming with a creative novice”, which also can be useful - it can give ideas to explore that you didn’t think of.
Of course this was all fairly trivial code, I do not know yet how it will behave in a more tricky situation.