14 ms·
I've been writing code for nearly as long and man, you have to try it. It's more like autocomplete on roids than something that generates Fibonacci methods auto
by thefourthchime 4y ago
I've been writing code for nearly as long and man, you have to try it. It's more like autocomplete on roids than something that generates Fibonacci methods automagically.
- ALittleLight 4y agoI've used Copilot for a little while. I'm away from my computer at the moment but I'm very confident it would generate Fibonacci methods.
- glacials 4y agoI don’t think they mean that it can’t, just that the better way to think about the advantages it gives an experienced engineer is more along the lines of “autocomplete v2”, i.e. a keystroke-saver.
- andrepd 4y agoIs it a keystroke saver if you need to review every line it proposes to you?
- matthewmacleod 4y agoYes. For my part, it's a very obvious boost in exactly that sort of keystroke-saving way. Here's an example I just now tried in the codebase I had open. I literally typed in the following Go in a function: mean := geom.Vec3D{} for Copilot then autocompleted this, me pressing tab to accept each line, to: mean := geom.Vec3D{} for _, detection := range filtered { mean.X += detection.X mean.Y += detection.Y mean.Z += detection.Z } mean.X /= float64(len(filtered)) mean.Y /= float64(len(filtered)) mean.Z /= float64(len(filtered)) It's not a perfect platform by any means, but it's also pretty useful for this sort of autocompletion.
- gopher_space 4y agoI can picture autogen boilerplate being collected and distributed in versioned "community expansion packs" to popular languages, and I'm not looking for fragmentation like that in my tools. I really don't want my IDE involved like this. I'd rather see Copilot used to expand existing libraries. Pulling potential additions to your own library off of Copilot would be an interesting twist on the situation. A hacktoberfest-alike based off this would be weird.
- Fogest 4y agoNobody is forcing you to use it... Others like myself find it useful and to be a huge timesaver. If it doesn't benefit you, then just don't use it. Why must people be so vocal about not liking something? I get that you don't think it would be useful for yourself, but it sounds like you've never used it, yet are against it enough to come bash on it in a thread. I think you should give it a try and see what you think about it. I was hesitant about it at first but was very surprised at how much time it could save me from having to look up things on Google. I've found it especially useful when I'm switching to a language I may be less familiar with. I can understand the basic logic of what I want to do, but would have to spend time looking up how to do it in this specific language. Orrr... I just have copilot help me out and generate such a solution. It's obviously not going to be a tool that is applicable to everyone. Just like how many manual labour oriented contractors have a bunch of tools, each of them may have their own set of tools that slightly differs from the other person. That is okay, and there would be no need to try and bring someone else down for their choice to use a certain tool.
- gopher_space 4y agoNo, I think it's amazing. My point is why not write its suggestions down somewhere and cut out the middle man. My concern is that I'd get locked into a specific IDE.
- julian37 4y agoThis is a good example of why I dread Copilot: even if Go specifically couldn't express this any more concisely, there is a language that can and Copilot's very existence makes it less likely for that other language to be used as much as it deserves. Besides, the generated example seems to be missing code to gracefully handle the case where len(filtered) is zero. Maybe there's a precondition that prevents that from happening or maybe a division by zero is exactly what you'd want, but at face value it looks like the bot did a rush job.
- throwaway675309 4y agoYes because often times while I'm unable to recall the exact idiosyncratic keywords incantation that I need, copilot will retrieve them automatically. This saves me a context switch to MSDN docs or stack overflow. It automates a great deal of boilerplate crap that you have to do especially in web frameworks such as angular.
- fassssst 4y agoRTFA :)
- cmrdporcupine 4y agoI will try it at some point, but I have... feelings... about its abuse of open source licenses software as a learning set. Also I work in Rust these days, and use CLion. Not sure if it would be much help in that environment.
- bayindirh 4y agoI left GitHub on the spot, and moved to Source Hut the day Copilot released.
- MichaelMoser123 4y agosomeone can still mirror your stuff on github. I wonder if they should make a special open source license, that disallows use of the source code for the purpose of training something like Copilot.
- dragonwriter 4y ago> I wonder if they should make a special open source license, that disallows use of the source code for the purpose of training something like Copilot. Since Microsoft uses material for copilot outside of licensing on the basis that it is Fair Use, that would probably have no effect in practice on whether or not the material is used in training something like Copilot. For that to matter, you’d first have to win a lawsuit on the basis that training something like Copilot requires permission of the copyright owner of the training material, to invalidate the premise of Microsoft’s action.
- MichaelMoser123 4y ago> Since Microsoft uses material for copilot outside of licensing on the basis that it is Fair Use, that would probably have no effect in practice i think that any formal violation of an open source license would be very bad in terms of public relations - even if they can claim fair use.
- 4y ago
- throwaway6977 4y agoYup exactly, and the ability to basically be fluent in any language.
- TheRealPomax 4y agoNot until there's a setting that can guarantee the automcomplete is based on verifiably license-unencumbered source that is automatically tracked in some kind of sourcemap that tells me which parts of "the code I didn't write" comes from which other project and file inside that project. Until then, copilot is a giant liability that ensures I can't use it for code that my company ends up owning, nor can I contribute code I write with it to literally any open source project because in a very real sense: I didn't write it. I just assembled it from parts unknown, and those parts may end up being lawsuits.
- thaeli 4y agoI would also be comfortable with a service that was willing to broadly indemnify me as the customer from copyright and patent claims arising from code generated by their service. I doubt that will ever happen either.
- honkdaddy 4y agoAs a hypothetical, what would that case actually look like? I'm suing you because I have a strong belief that part of the codebase of your personal project was assembled from code I wrote and didn't license permissively, so now I'm claiming ownership? Obviously IANAL so this is largely conjecture, but until we _actually_ see how this would play out in court, I'm leaning towards this being less of a legal issue than folks here act like. For personal projects, I'd say the likelihood of some other engineer reading your code, noticing a similarity or duplication, and dragging you to court for it is near 0.
- TheRealPomax 4y agoAs hypetheticals: - "you were hired to write code for us, not to use an autocomplete service that makes us liable for both copyright and patent lawsuits, I hope you like getting fired." - "as per this project's license, we can only take code on board that you contributed under our license, but an audit shows that your PR/MRs contain tons of GPL/MIT/Whatever licensed code instead. We're going to have to back all of that out, and we're going to revoke your contributor status" - etc. If you don't know where the code in your autocomplete comes from (and copilot can autocomplete large swathes of code) then literally anything that comes out of "you didn't write this code" may apply. From fraud (depending on what contract you signed) to trademark infringement, to license violations, to even just simply misrepresenting your skills to an employer. As with all things, it's a sliding scale, but just because the majority of incidents will be on the bening part of the spectrum doesn't mean the litigating part doesn't exist, and that's what your legal department plans for. Work for a big company? Good bet you're not allowed to use copilot. And depending on the company, not even "for your personal projects" because you might accidentally read someone else's license encumbered code that you would not have come up with yourself and may now open your employer up to "you stole our ideas instead of properly crediting/paying for licenses". Copilot is a legal nightmare.
- Beltalowda 4y agoI found carefully reviewing the suggestions it gave me more work than actually writing the code myself. Granted, I only used it for a day, but many of the suggestions were subtly wrong, needless inefficient, or used outdated/deprecated paradigms/standard library stuff. I only used it for a language I'm very familiar with. I'd be a lot more hesitant using it for a language I'm less familiar with because I won't be able to spot the problems so easily.
- nsxwolf 4y agoI’ve really found no use for it at all. It doesn’t understand the codebase it’s being used in. I can’t tell it to write a service that gets data from another internal microservice, oh and make sure you do it in the same way the other services are implemented so that this passes code review… it can cough up slightly wrong answers to leetcode problems, but who has a job where that’s useful?
- lolinder 4y agoI've found it extremely helpful in writing highly repetitive code that's too complicated for a Regex find/replace. For example, I used it when writing a recursive descent parser in Rust for a hobby project. I wrote the grammar in a comment at the top of the file, wrote and imported the AST enum, and wrote the first production. After that, I just prompted Copilot and it worked its way down the grammar, producing the parser functions one at a time. The CLion integration was able to consider the imported data structures as part of the prompt, so it even stored everything in the correct AST nodes. For something like that, it's easy to verify that it did it correctly (through visual inspection and testing), and it allowed me to write the entire parser in about 2-3 seconds per rule.
- xigoi 4y agoWhy not just use a parser generator?