by idan on 9/7/22, 5:01 PM with 138 comments
by gamegoblin on 9/7/22, 7:16 PM
up = foo.north()
right =
and then it will correctly suggest up = foo.north()
right = foo.east()
down = foo.south()
left = foo.west()
This requires a kind of linguistic understanding that is beyond basic intellisense. If you are just wanting it for basic intellisense autocomplete, it's not much better than JetBrains stuff. But for things that require linguistic comprehension, it's incredibly useful.For example, if I have a `Point` object with `x` and `y` fields, and I make a function called `lowest_point`, it knows I want to the point with the minimum `y` value. Because it knows the name `y` is most typically used for vertical direction, and the word `lowest` also implies vertical direction. This is kind of a linguistic/semantic knowledge that is not found in just the type system.
by jacobsenscott on 9/7/22, 9:20 PM
I found copilot to be nothing but a hinderance and additional cognitive load. Not only do you need to think about the code you want, you need to review the (usually wrong) code copilot produces and either reject it or edit it to make it right. This is a lot more mental overhead than just writing the code.
by noizz on 9/7/22, 7:37 PM
However, every now and then, there came a typed object or something mundane and Copilot exceled at it, so I decided that I want to find a way for it to coexist in a way that's as easy to use as pressing Tab to expand it. Lo and behold - I found an unused key below Tab (AKA caps lock), remapped it and now it doesn't get in the way and I can use Copilot's help only when I want.
by adamddev1 on 9/7/22, 6:24 PM
if (myTypedVar === "" <--
Back off Copilot, let TypeScript Intellisense give me the correct suggestions. Or at least run the Copilot suggestions through TS first and make sure it doesn't suggest type errors.
by NoraCodes on 9/7/22, 6:06 PM
by habitue on 9/7/22, 11:29 PM
Cognitive load is massively decreased, I don't have to push much on the working memory stack to do small utility functions, they just write themselves now (especially if I write the type signature first). I can spend a lot more of my time at the middle level of abstraction, and keep moving.
by wokwokwok on 9/8/22, 3:37 AM
When you're using it on a code base that it's familiar with, it'll often suggestion quality of life suggestions that you may not know about.
For example, using unity, did you know
Mathf.RoundToInt
Was a thing?I didn't, until I was using a normal way of doing it (eg. `(int) Math.Round(v);` and copilot popped this suggestion up.
I had similar experiences using opencv in python.
Maybe the suggestions aren't always perfect, but what it does do, is show you how other people have written code using the same engine/plugin/library you're using; and when you're learning a new API, that's extremely valuable.
The alternative (finding github projects using library X, browsing through the code) lets you do the same thing too, but its much much slower to pickup the same 'tips' about an API that way.
Specifically with regard to "give people a new task they haven't done before in language X with/without copilot", this kind of 'tip' for using an unfamiliar API seems high plausible for getting developers up to speed.
I wish it had support for doing this in a way that was 'favour suggestions like existing code base' to help on-board new developers.
That would be really really useful.
by chank on 9/7/22, 6:17 PM
by ktzar on 9/8/22, 12:47 AM
by baby on 9/8/22, 2:11 AM
by siraben on 9/7/22, 9:29 PM
by jeffbee on 9/7/22, 6:14 PM
OK ... interesting choice. This could mean almost anything. I can "write a web server" in a python 1-liner in about 2 seconds (ctrl-r SimpleHttpServer, enter).
by DethNinja on 9/7/22, 9:16 PM
Privacy concerns due to copilot makes it unusable for companies with closed source code.
I’m hoping that eventually there will be a stable diffusion level solution in this field.
by abrax3141 on 9/8/22, 3:41 AM
by wilg on 9/7/22, 6:37 PM
by xs83 on 9/8/22, 2:17 AM
What would be great would be for an enterprise pricing capability, we would love to purchase this on behalf of our employees via a single interface.
by antihero on 9/17/22, 9:24 AM
by isatty on 9/8/22, 1:30 AM
Seems like popularizing snippets wouldve gone further but then you miss out on the buzzwords.
by _____s on 9/7/22, 6:51 PM
by avg_dev on 9/7/22, 6:46 PM
First off, I don't see a link to the "HTTP server in JavaScript" task. It's really hard for me to place much faith in their conclusions when it's not even clear what the problem definition was.
Second, I believe that a lot of more senior developers and development managers who take secure development practices somewhat seriously will not be able or willing to use Copilot in any sort of proprietary setting. Here is a quote from the Copilot FAQ:
> [...] The GitHub Copilot extension sends your comments and code to the GitHub Copilot service, and it relies on context, as described in Privacy below - i.e., file content both in the file you are editing, as well as neighboring or related files within a project. It may also collect the URLs of repositories or file paths to identify relevant context. The comments and code along with context are then used by OpenAI Codex to synthesize and suggest individual lines and whole functions.
- from https://github.com/features/copilot/#faq - see "How does GitHub Copilot work?"
I believe this makes it simply a nonstarter in a lot of environments. I am wondering if there are a number of places that have restrictions on sharing their code with a third-party but don't know or don't care and so end up using Copilot anyway. I believe that short-sighted thinking like this is more prevalent in shops that have low-quality code, and I believe that the higher-quality the code, the less likely someone is to use Copilot, simply for the "I can't share my code, even if I use the most restrictive no-telemetry settings" reason. Give me a self-hosted Copilot, and I may try it out in anger.
Finally, I based some of my thinking on a recent Reddit /r/programming discussion of Copilot: https://old.reddit.com/r/programming/comments/wsnend/since_g...
After reading those posts, and internalizing them with my own view of coding, I believe Copilot is not ready for my personal use. Again: licensing considerations aside (if you actually can feel comfortable putting them aside, see NoraCodes comment in this HN thread e.g.), it is simply a non-starter for anything proprietary in nature. I am also of the mind that any code that is of necessity very tedious to write is in dire need of real attention, most likely in the form of tests and quite possibly refactoring to reduce the boilerplate if at all possible. I believe in the value of linters and automated code analysis tools and in continuous integration that runs after every commit. Give me a self-hosted Copilot, and we'll have a real chance to see how it works out - until then it's not going to be a boon to programmers.
by IceDane on 9/8/22, 7:24 AM
A bunch of insecure clowns that somehow manage to feel personally threatened by a productivity tool. It's hilarious. Get over yourselves.
Copilot is just an intelligent, context-aware search engine that is plugged directly into your code editing workflow. It's nothing more. It's the sci-fi version of having a hardcoded `site:stackoverflow.com` google search box right next to your editor.
It's easily the nicest thing I've installed for productivity in a while, and it regularly amazes me what it can pick up from context. I can switch between code written in two different languages that is related, and copilot will often pick up enough context to give me correct suggestions in one language based on the code I just wrote in the other.
by valenterry on 9/7/22, 6:55 PM
by fezfight on 9/7/22, 11:53 PM
by mhils on 9/8/22, 2:33 AM
by abdusco on 9/7/22, 6:28 PM
I found it most helpful in setting up boilerplate in when writing tests. It could offer testing some edge cases before I could think of them.
by j-sizz on 9/7/22, 7:33 PM