30 ms·
GitHub Copilot available for JetBrains and Neovim
- meijer 5y agoI wonder when it will become generally available. Feels like it has been around for quite a while now.
- petepete 5y agoWait, they got Tim Pope on the case for the Neovim plugin? Amazing, I'm positive it'll work beautifully. For those who don't know, he's essentially the godfather of vim plugins - I even have an entire 'tpope section' in my init.vim
- fouc 5y agoHaha, I mean, tpope has been working on vim plugins since 2005/2006 from my IRC memories, but there were vim plugins before that too.
- ViViDboarder 5y agoThat’s what stood out to me too! His plugins are always so thoughtful and idiomatic Vim, they really ought to be default. I guess except this one should remain opt in.
- dgdosen 5y agoI just tried installing for neovim - but got an error running vim-plug's `:PlugInstall` I added an issue. https://github.com/github/feedback/discussions/6847 https://github.com/github/feedback/discussions/6847 Anyone else install in neovim?
- _blz2 5y agoThe copilot docs say you need a prerelease version of neovim. Maybe that's the reason? homebrew might get you 0.5.2. The nigthly gives you 0.6.xx
- premek 5y agowill the plugin steal my employer's code and give it to a competition?
- ipnon 5y agoCan any users give their opinion on how it's helping their productivity? What problems are they finding, if any?
- the42thdoctor 5y agoI was working on some internationalization stuff, translating some phrases from english to portuguese and Copilot just did it for me, does not seem like much but for me that is amazing. I was able to write {"Settings":...} and Copilot completed with {"Settings": "Configurações"} that tool is simply amazing.
- ed_elliott_asc 5y agoIt is massively improving my productivity, things I couldn’t be bothered to write it does for me. The thing I find really good is it can predict what I will do next. Say if I have a list of columns in some text somewhere in the project when I write one “df = df.withColumn(“OneItemInList”)” Copilot will then add the same for all the other items - is really nice
- capableweb 5y agoTried it out for a while, and it's clear that it's trying to get people to be faster at writing boilerplate, not get people to write better code. I'm a bit scared for what this means as I don't think being able to faster write boilerplate is something worthwhile. The example ed_elliott_asc made is one of those examples where instead of fixing things so you don't have to repeat yourself, copilot makes it easy to just live with the boilerplate instead.
- aranchelk 5y agoBoilerplate is exclusively what I use AI-powered code completion for (currently Tabnine). In a perfect world we’d all have excellent comprehensive metaprogramming facilities in our programming languages and no incidence of RSI (e.g. carpal tunnel syndrome). Code completion is a good tool to deal with these realities.
- airstrike 5y ago
- threatofrain 5y agoI've been getting a lot more misses than hits with Github Copilot, even when writing elementary math or utility functions; but despite its error I am nevertheless astonished at its approximation of intent. Very eager to see Github Copilot catchup to some bright line of signal v noise.
- Gigachad 5y agoI'm constantly blown away with what it spits out even when its wrong. When it pulls in the greater context of the app and generates comments from scratch using the context of the file, its just incredible.
- baby 5y agoI would say the reverse, I’m getting so many hits that I’m mindblown. And when it missed, I can generally still use that and fix the suggestion, as it’s faster.
- f38zf5vdt 5y agoIt's a glorified autocomplete to me. It seems like it feeds me mostly things I'd get from searching Stack Overflow. The first day was pretty interesting but the novelty wore off quickly. You still need to grok what it spews out and see if it's correct. And the worst thing about that is that you don't get the context of the Stack Overflow threads, where people discuss the impact of the given solution and alternatives. So after a week, off it went for me.
- josebalius 5y agoHere is a demo of it with Neovim & Codespaces: https://twitter.com/josebalius/status/1453413543232090118 https://twitter.com/josebalius/status/1453413543232090118
- Spinnaker_ 5y agoHow well can copilot write unit tests? This seems like an area where it could be really useful and actually improve software development practices.
- kqr 5y agoIf you're looking for test case generation there are already mature tools for that. I doubt anything generic could improve on those.
- ericlewis 5y agoany suggestions for said tools?
- prionassembly 5y agoHypothesis for Python. Schemathesis builds on Hypothesis and generates tests from OpenAPI specs.
- dmitry_dygalo 5y agoAnd from GraphQL APIs as well :)
- svieira 5y agoQuickcCheck-type tools (generators for tests that know about the edge cases of a domain - e. g. for the domain of numbers considering things like 0, the infinities, various almost-and-just-over powers of two, NaN and mantissas for floats, etc.): * QuickCheck: https://hackage.haskell.org/package/QuickCheck https://hackage.haskell.org/package/QuickCheck * Hypothesis: https://hypothesis.readthedocs.io/en/latest/ https://hypothesis.readthedocs.io/en/latest/ * JUnit QuickCheck: https://github.com/pholser/junit-quickcheck https://github.com/pholser/junit-quickcheck Fuzz testing tools (tools which mutate the inputs to a program in order to find interesting / failing states in that program). Generally paired with code coverage: * American Fuzzy Lop (AFL): https://github.com/google/AFL https://github.com/google/AFL * JQF: https://github.com/rohanpadhye/JQF https://github.com/rohanpadhye/JQF Mutation / Fault based test tools (review your existing unit coverage and try to introduce changes to your _production_ code that none of your tests catch) * PITest: https://pitest.org/ https://pitest.org/
- alexellisuk 5y agoSo who knows what all that WASM is for in the Neovim plugin? Is there source for it? https://github.com/github/copilot.vim/tree/release/copilot/dist https://github.com/github/copilot.vim/tree/release/copilot/d...
- wilde 5y agoA web search suggests that it’s this: https://github.com/nvim-treesitter/nvim-treesitter https://github.com/nvim-treesitter/nvim-treesitter
- kevincox 5y agoPresumably they are tree-sitter grammars for those languages. I think these grammars are open source so should be available (assuming they were unmodified).
- lionkor 5y agoGood, I was getting really tired of subtly plagiarizing by hand.
- fouc 5y agoAs the saying goes, "A good programmer copies, but a great programmer steals outright."
- standardUser 5y agoI just call that "programming".
- chefandy 5y agoYesterday, I was disgusted to see framers putting up a house that clearly plagiarized the entire internal structure of my own. Same joint interfaces, same structural idioms when dealing with things like staircases, windows, and rafters, same fasteners, same adhesives, even the building materials! Aside from the most general aspects of the layout, it was exactly the same right down to the inch! People have no professional integrity these days.
- bogwog 5y agoThat analogy only works if you designed/architected your own house.
- aziaziazi 5y agoIt may work if you design/architect houses for clients.
- chefandy 5y agoPlagiarism can only be spotted by people who wrote the original work?
- sterlind 5y agocopilot's won't suggest anything worth calling plagiarism, just mundane plumbing and maybe textbook algorithm implementations. have you seen it generate anything more glorified than StackOverflow-esque code snippets?
- deorder 5y agoI signed up for the copilot technical preview right after it was announced a few months ago, but I haven't gotten an invite yet while all my friends who signed up later did (I feel a bit left out). Is there any way to get an invite sooner? What am I doing wrong?
- meijer 5y agoSame for me.
- parafactual 5y agoI said I use VSCode all the time, which I suspect is the reason I got access. (I never use VSCode.)
- deorder 5y agoI actually do use VSCode (in addition to Vi and Vim) and I believe I indicated that.
- Kiro 5y agoSame and I also signed up right away. Still no invite.
- dragonwriter 5y agoI said I use VSCode all the time and just got access, having signed up at the very beginning (I, in fact, use VSCode all the time.)
- unpipable 5y agoI singed up in the first week and got my invite on Monday. I don't have anything "linked" with my github via vscode or anything so I doubt IDE or program usage was a deciding factor. I do regularly commit small stuff.
- netcyrax 5y agoWhy are people not bothered by privacy concerns in this case?
- bogwog 5y agoBecause the generation that grew up without any privacy is growing up and getting jobs in tech.
- lvass 5y agoThey're good kids who won't have to worry about their social credit.
- jmnicolas 5y agoI suppose this thing upload your code to Microsoft servers then run some deep learning algos on it and get back to you with suggestions? It also probably keep your code to feed it to the algos. If big tech was trustworthy I would use this with glee. But when I see how the world is turning, I'll continue to type boilerplate by hand (as long I'm allowed).
- gremlinsinc 5y ago> I suppose this thing upload your code to Microsoft servers then run some deep learning algos on it and get back to you with suggestions? It also probably keep your code to feed it to the algos. Be sure you don't commit your code to github...as that's literally uploading your code to Microsoft servers, I mean if you just don't trust them for being 'Microsoft'.
- Gigachad 5y agoBecause the entire codebase I work on is already in the hands of github. I couldn't care if they can also see it being written live.
- pintxo 5y agoI would be even more concerned about licensing and copyright at this point. We might see some interesting legal discussions around this, given you probably (I did not check the terms) give consent to Github using your code for other purposes beyond querying their model.
- ahupp 5y agoI've been using Copilot in VS Code and it's been surprisingly useful. It makes suggestions pretty rarely, but when it does I accept about 50% of them. Generally these are few-line functions and it just gives me what I would have written after thinking about it a moment.
- jkelleyrtp 5y agoI actually really like Copilot. There tends to be a lot of repetitive code in the world. I primarily write JS, Py, and Rust. Sometimes, I might declare something like a function table, and Copilot will automatically fill in the class definition with everything I defined. I'm not using Copilot to write new algorithms or solve library-specific problems, but it sure is next-level in picking up patterns in a file and predicting where you want to go next. Obviously, good code is succinct (not repetitive), but it sure is helpful when in that early prototyping stage. I admire it's ability to infer a correct assertion when writing Unit Tests - it made it much easier for me to write tests recently and helped me recognize a few bugs.
- throwthere 5y agoSame experience here. I think a lot of prime are being a little too philosophical about it. Where it shines is small helper functions and predictive boilerplate. It’s more like emmet imo then a pair programmer.
- mistrial9 5y agothis has been "inevitable" for three decades now. The difference is, walled gardens making participation non-optional; commercial intent over "fairness"; elevating the trivial for the pleasure of management .. what could go wrong?! overall, a new forms generator with a somewhat terrifying amount of horsepower.. zero trust of microsoft here, basically
- snvzz 5y agoStill no way to opt your code out of this. Disgusting.
- sergiomattei 5y agoDon't open source your code then.
- bogwog 5y agoMicrosoft: 1 Open Source: 0
- drran 5y agoFind a torrent with sources of M$ Windows and copilot them: M$: 1, Open Source: 1.
- kadoban 5y agoOpen Source has licenses that must be followed. Copilot strips those off and ignores them.
- IshKebab 5y agoWhat if I - a human - read your code, learn from it, and then use that knowledge to write my own code? Am I stripping your license off and ignoring it? Clearly it's not as simple as you imagine.
- unpipable 5y agoCopilot has been super fun! Here is a small website I generated via only comments - in the HTML and JS. The CSS needed a bit more massaging but it also auto generated. https://spencer0.github.io/copilot-tests/ https://spencer0.github.io/copilot-tests/
- lelandfe 5y ago<!-- Details on the fall of rome --> <p>The fall of rome was a great event for the people of rome.
- leodriesch 5y agoAI comedy gold
- kesslern 5y agoIs anyone able to install the plugin yet? I'm not seeing it when I search the plugin marketplace in Rider.
- thrower123 5y agoSaw a review the JetBrains page that Rider isn't officially supported, but they got it to work anyway, although they don't say how https://plugins.jetbrains.com/plugin/17718-github-copilot/reviews https://plugins.jetbrains.com/plugin/17718-github-copilot/re...
- kesslern 5y agoLooks like I can download it from the plugin page and manually install the zip file. Thanks! https://plugins.jetbrains.com/plugin/17718-github-copilot/versions https://plugins.jetbrains.com/plugin/17718-github-copilot/ve... EDIT: Hmm, it installed but it refuses to run. EDIT2: Looks like you can force the plugin to work by editing the plugin.xml contained in github-copilot-intellij-1.0.1.jar within the plugin archive. Just remove the line that includes Rider as incompatible. The same should work for CLion.
- pugets 5y agoCopilot is crazy. The other day, I was writing a Python function that would call a Wikipedia API. I pulled from the internet an example of a GET request, and pasted it as a comment in my code. # sample call: https://en.wikipedia.org/w/api.php?action=query&format=json&list=geosearch&gscoord=37.7891838%7C-122.4033522&gsradius=10000&gslimit=100 Then I defined a variable, base_url = "https://en.wikipedia.org/w/api.php?" Then, like magic, Copilot suggested all the remaining keys that would go in the query params. It even knew which params were to be kept as-is, and which ones would come from my previous code: action = "query" # action=query format = "json" # or xml lat = str(latitude.value) # 37.7891838 lon = str(longitude.value) # -122.4033522 gscoord = lat + "%7C" + lon ... api_path = base_url + "action=" + action + "&format=" + format + ... + "&gscoord=" + gscoord As a guy who gets easily distracted while programming, Copilot saves me a lot of time and keeps me engaged with my work. I can only imagine what it'll look like 10 years from now.
- ctoth 5y agoThe next version of Copilot will submit its answers to HN and return the highest-voted comment that compiles, after stripping out the well actually spurious tokens. Just look how well it worked this time?
- deleted 5y ago[deleted]
- c7DJTLrn 5y agoBit of a dodgy way to form query parameters though. Other than for a quick script.
- lijogdfljk 5y agoHow so? I'd prefer a proper structured library, is that what you mean? If so, the Copilot code actually seems not dodgy - because the author _started_ with `base = ...` , indicating that they were string formatting the params. Or did you mean something else?
- 5y ago
- baby 5y agoI’ve been using this for weeks and it blooooows my mind. It comes up with crazy recommendations, just yesterday I wrote this big ass logic to do something, then I wanted to move that code to a function so I wrote the function name and I kid you not copilot suggested a one-liner that worked… the thing is so useful and I’m not writing simple code (writing cryptographic code). And when it’s not doing that at the very least it provides auto-completion to lists where a counter has to increase and things like that. It’s just baffling, I don’t think I’m that directly impacted by AI, or at least this is the first time where I’m like “wow, AI really is changing the world RIGHT NOW”. Half-joking: can’t wait for it to just write my code. Also if this feature would be paid tomorrow, I think I would pay for it. It’s really noticeable when I don’t have copilot enabled now. Oh and, autocompletion doesn’t work with markdown files because of markdown plugins I think? But this is another level of insanity: when I’m writing english it figures a lot of the sentences I want to write. Makes me question if I’m just a deterministic individual with no choice.
- rpeden 5y agoI was experimenting with it over the weekend and basically got it to build out a simulation of schooling/flocking boidfish swimming around a tank. That was fun! I certainly wasn't expecting it to create the whole darn thing, but it did. I just added an occasional comment to nudge it toward doing exactly what I wanted.
- superdisk 5y ago> writing cryptographic code Delegating the implementation of something that you are notoriously never supposed to roll your own, to a text generator AI.... What could possibly go wrong?
- baby 5y agoI think you got the wrong idea on how people use copilot. You don't just accept everything it throws at you. Think about it as an auto-complete on steroid, would you say that auto-complete is dangerous to use? If not, then this is the same. The suggestions of copilot don't always compile, but they sometimes manage to find the right function to use, or the right combination of functions, or even the right comment (if you're writing a comment).
- jimmaswell 5y agoHow could they support these two random IDEs before Visual Studio proper?
- jmnicolas 5y agoA few months ago at work I had some suggestions in VS to allow for a better intellisense with the help of AI. I think it was probably this. I didn't allow it since I think it implied uploading my code to their servers.
- parhamn 5y agoI tried it on IntelliJ recently. The examples I tested blew my mind. Yet, I think there are two things that need to improve to get me to use it regularly (it will get there!): - less than perfect import/types/var suggestions that LSP in typed languages would've made perfect suggestions for (e.g named import in go would use the package name instead). - latency feels a bit high and my thoughts would get interrupted waiting for a suggestion to come. For the former, I wonder hard feasible it would be to give structured suggestions to the LSPs that it would swap for correct var names and imports and such. Or test each suggestion with the LSP for error counts and offer the least erroring suggestion.
- sillysaurusx 5y ago> latency feels a bit high and my thoughts would get interrupted waiting for a suggestion to come. How high? That's interesting.
- baby 5y agoI haven't had problem with the latency personally
- shanebrunette 5y agoEmacs please
- da39a3ee 5y agoIt does seem a bit controversial to develop a relationship with neovim without approaching emacs. I wonder if they even asked on emacs-devel, I’m sure they’ll have got a friendly response …oh hang on…
- mooreds 5y agoNote that you have to have a copilot account and GA is still waitlisted. I filed a PR because it was a bit frustrating to go through the entire setup and then find out I needed to be granted access. https://github.com/github/copilot.vim/pull/2 https://github.com/github/copilot.vim/pull/2
- eikenberry 5y agoAny word on if they will ever make Copilot free software? It sounds interesting, but I avoid using proprietary software in my development stack. Plus it looks like it be fun to play with.
- f38zf5vdt 5y agoI used it for about a week but found I could type faster than it could suggest, even if it suggested the right thing. I have been coding for about 25 years but maybe it will help people new to whatever language they are using.
- yunji 5y agoHow does this compared with tabnine? could these 2 plugins be used together?
- aimor 5y agoI'm very interested in this as a learning tool: instant feedback about what could come next, compared to the status quo of searching the internet or searching the language documentation. A lot of the time I learn a way to do something, then sometime later stumble across a better way to do the same thing. My hope is that Copilot can be a shortcut for that discoverability.
- ausbah 5y agothe fact that most of Co-Pilot's usefulness comes from repeating common snippets of code makes me think there has to be a much simpler way to reduce the boilerplate of "common tasks"
- AnthonBerg 5y agoIn my opinion, dependent type systems are that way. A dependent type is a type that depends on a value. What something is depends on something else; What something is is derived from something else – with computation. What dependent types are are calculations of type structure. Unbounded, this becomes intractable like all unbounded computational expressivity. So that’s what modern dependent type systems need to solve—and they do. There exist formal results that frame the computational expressivity of dependent type systems and make perfectly feasible and tractable the task of deriving significantly complex types. Automatically. The Idris language is a great example of where we’re heading. The reason I’m more interested in this sort of thing rather than Copilot is that dependent type systems are based on formally rigorous methods. You end up with formally verified programs, by way of the same mechanisms that allow you to derive them automatically. They’re also easier to compose, for the same reasons. Edwin Brady’s Idris demonstratons on Youtube show a bit of what’s possible. In one, the compiler automatically writes a formally-correct type-directed matrix multiplication function. In another, run-length encoding and decoding functions are generated from a type definition. The book Type-Driven Development with Idris is a great read. Mind-expanding. Programming is automation. The automation of automation is… dependent types.
- api 5y agoFormally rigorous methods have almost always lost out in the market against slop like JavaScript. I think the reasons are completely pragmatic and boil down to two things. The first is that rigorous systems usually take longer to build and meanwhile the slop ships first and gains mindshare. The second is that rigorous systems are usually built by academics or specialists in some specific vertical and lack the easy installation, easy onboarding, and integration with other platforms that more pragmatic sloppy platforms tend to prioritize first. Those things get prioritized first because sloppy languages and systems tend to evolve from makeshift "shop jigs" used to get stuff done, not from research.
- tdiggity 5y agoAnyone know how long the waitlist is?
- mikeywazowski 5y agoI joined the waitlist at the end of June and got an invite yesterday. So 4 months? However, I imagine a lot of people signed up just before me, so I was probably at the end of a long list. The wait wouldn't be this long if you sign up today, I reckon. I'm just guessing though.
- giuseppeciuni 5y agoI signed up copilot on june... still received nothing unfortunately!!!
- mikeywazowski 5y agoI'm sure it'll be coming soon - a colleague of mine signed up shortly after me and received an invite today.
- tdiggity 5y agoFast turnaround, got my invite today!
- synergy20 5y agoI hope it will work for the 'standard' vim, so far it reports 'vim version too old', while I'm using the newest vim. it's said because vim lacks 'virtualtext' feature.
- MayeulC 5y agoDoes it relies on a Microsoft-provided API? If it's not offline, the same gotchas as other SaaS apply.
- wara23arish 5y agoI have a few questions about copilot. I haven’t gotten a chance to use it yet. Is it irrational that this makes me a little anxious about job security over the longterm? Idk why but this was my initial reaction when learning about this. Given the scenario where copilot and its likes becomes used in a widespread manner. Can it be argued that this might improve productivity but stifle innovation? Im pretty early in my career but the rate things are capable of changing soon doesn’t sit too well with me.
- api 5y agoI wouldn't worry about job security. Programming is a story of steady gradual automation and all that's done is increased its reach and multiplied the number of niches where there is demand for software. Future developers might be more like architects guiding AIs and then occasionally jumping in to hand-hold or correct the result.
- fungiblecog 5y agoYou should only be worried if you just copy and paste boilerplate between files. If you're actually able to solve problems and design things there's nothing to be worried about
- objclxt 5y ago> Is it irrational that this makes me a little anxious about job security over the longterm? In the 50s, we programmed computers with punch cards. Who does now? How many web developers today could tell the difference between `malloc` and `calloc`? Probably not that many. For a lot of developers, programming today bears very little relation to programming decades ago. Copilot is like any other innovation - it obsoletes some skills, and it introduces new ones. I doubt copilot will reduce the need for engineers: but it may change the work they do. But that's no different to any other industry.
- eloisius 5y agoI don’t like this narrative. Going from punch cards, to Assembly, to C and to dynamic languages all empowered the programmer with more expressive languages. I don’t believe going from Python to programming via code comments is the same deal. It would be more like we still write asm but we have editors that let you write a little C code and then it spits out a paragraph of ‘reasonable’ asm that still has to be maintained.
- neilv 5y agoA lot of the examples people are giving of code Copilot filled in for them sound like what would be called plagiarism, and probably also copyright infringement. Which I think was fairly predictable. What wasn't predictable was that someone would ship this Copilot anyway, consequently exposing their company and their users' companies to liability. Imagine if you hired an intern who was copy&pasting bits of GPL'd code throughout your system. This would not be a good job, it would be something that needed immediate attention from legal counsel and others, and mean reverting every commit the intern from heck made if you couldn't prove convincingly it wasn't tainted. Especially if you're a startup, who needs to assure investor due diligence in good faith that you actually own the IP.
- bastardoperator 5y agoWait til stackoverflow sues everyone into oblivion! Letting your intern blindly commit to your code base seems like the bigger issue here. The entire purpose of an internship is to learn and to be guided by professionals, not to be treated as a cheap laborer. You don't hire interns, you train interns. Have you used copilot or are you speculating?
- neilv 5y agoIf the analogy works better, imagine that you hired a developer who copy&pasted GPL'd code throughout your system. (And people couldn't tell in code reviews, nor on other occasions to see the code, since it's not normal to recognize GPL'd code on sight; everyone just assumed the developer was productive.)
- marginalia_nu 5y agoI think people should be a lot more concerned about the possibility of accidentally deriving your work on something with an AGPL license.
- neilv 5y agoIf the analogy works better, imagine that you hired a developer who copy&pasted whatever-license-your-company-is-most-afraid-of-and-is-highly-likely code throughout your system. :)
- bluelu 5y agoIt say on the github page that "GitHub Copilot will attempt to match your code's context and style. You can edit the suggested code as you choose.". Does this mean that the plugin will transmit my code to github servers?
- moyix 5y agoYes. The machine learning model runs on GitHub's servers (it's too big/expensive to run locally), so it has to submit the context of what you're working on to GitHub.
- Thorentis 5y agoIn my opinion, Copilot is going to become one of those "perceived authorities" that have just enough legitimacy to be blindly trusted by the inexperienced, but not enough to actually be useful to the experts. This is like social media (or even the Internet as a whole) and say, our parents' generation. Countless times I receive links to Facebook posts or random articles that somebody thinks must be true, simply because The Oracle (i.e. their smartphone) showed it to them. For much of the older generation, smartphones are these all-knowing repositories of wisdom, and anything they come across while using them is likely to be true. This is why I think misinformation has spread so easily. I imagine Copilot going down a similar path. The next generation of programmers who didn't grow up with knowing how to sift through API docs or SO answers for the right bit of code, or who's attention spans have been fizzled away, will love the idea of Copilot. Instant gratification in the firm of a tool that can seemingly do your work for you. This will be dire consequences for their ability to code and think for themselves.
- soledades 5y agoSo it looks like for neovim there is not yet the option to cycle through suggestions? Looks like for VSCode the shortcut on Linux is Alt-], see: https://github.com/github/copilot-docs/blob/main/docs/visualstudiocode/gettingstarted.md#alternates https://github.com/github/copilot-docs/blob/main/docs/visual... But for neovim, it doesn't mention anything about it in the docs: https://github.com/github/copilot.vim/blob/release/doc/copilot.txt https://github.com/github/copilot.vim/blob/release/doc/copil... And, nothing happens when pressing Alt-].
- qanstr 5y agoWe should put up a huge amount of Oracle open source code on GitHub, get CoPlagiarizer to quote it and let Oracle deal with the situation. The plebs should also play a little divide and conquer now and then.
- marstall 5y agoAny1 get it working WebStorm yet?
- truculent 5y agoThe comments are so full of praise that I will have to give this an earnest try. But is writing code really the part of software that people are struggling with?
- ghoward 5y agoI have many thoughts about Copilot, but here are two. First, as much as I don't like the idea of Copilot, it seems to be good for boilerplate code. However, the fact that boilerplate code exists is not because of some natural limitation of code; it exists because our programming languages are subpar at making good abstractions. Here's an example: in Go, there is a lot of `if err == nil` error-handling boilerplate. Rust decided to make a better abstraction and shortened it to `?`. (I could have gotten details wrong, but I think the point still stands.) So I think a better way to solve the problem that Copilot solves is with better programming languages that help us have better abstractions. Second, I personally think the legal justifications for Copilot are dubious at best and downright deception at worst, to say nothing of the ramifications of it. I wrote a whitepaper about the ramifications and refuting the justifications. [1] (Note: the whitepaper was written quickly, to hit a deadline, so it's not the best. Intro blog post at [2].) I'm also working on licenses to clarify the legal arguments against Copilot. [3] I also hope that one of them [4] is a better license than the AGPL, without the virality and applicable to more cases. Edit: Do NOT use any of those licenses yet! I have not had a lawyer check and fix them. I plan to do so soon. [1]: https://gavinhoward.com/uploads/copilot.pdf https://gavinhoward.com/uploads/copilot.pdf [2]: https://gavinhoward.com/2021/10/my-whitepaper-about-github-copilot/ https://gavinhoward.com/2021/10/my-whitepaper-about-github-c... [3]: https://yzena.com/licenses/ https://yzena.com/licenses/ [4]: https://yzena.com/yzena-network-license/ https://yzena.com/yzena-network-license/
- treesprite82 5y ago> This means that Google was careful to not make a large amount of copy-righted works publically accessible. Such is not the case for GitHub Copilot in particular Armin Ronacher’s tweet [19] The fast inverse square root algorithm referenced here didn't originate from Quake and is in hundreds of repositories - many with permissive licenses like WTFPL and many including the same comments. It's not really a large amount of material, either. GitHub claims they haven't found any "recitations" that appeared fewer than 10 times in the training data. That doesn't mean it's a completely solved issue though, since some code may be in many repositories yet always under non-permissive licenses. > and I would argue that it will not be the case for ML models in general because all ML models like Copilot will keep suggesting output as long as you ask for it. There is no limit to how much output someone can request. In other words, it is trivial to make such models output a substantial portion of the source code they were trained on. With the exceptions mentioned above, what you get back from asking for more code won't just be more and more of a particular work. Realistically I think you'd be able to get significantly more from Google Books.
- mewse 5y agoI’ve never understood the value proposition for Copilot. In terms of difficulty, writing code is maybe on average a two out of ten. On average, maintaining code you wrote recently is probably a three out of ten in terms of difficulty, and maintaining code somebody else wrote or code from a long time ago probably rises to around a five out of ten. Debugging misbehaving code is probably a seven out of ten or higher. GitHub Copilot is optimising the part of the process that was already the easiest, and makes the other parts harder because it moves you from the “I wrote this” path to the “somebody else wrote this” path. Even during the initial write, it changes the writing process from programming (which is easy) to understanding somebody else’s code to ensure that it’s right before accepting the suggestion (which is much less easy). I just don’t understand how this is a net time/energy savings?
- adminscoffee 5y agoi've actually grown to like it, it seems like it's getting better with each use
- deckard1 5y agoI don't see it either. The context switch between being in the zone/flow and writing the exact code I'm thinking of to suddenly reviewing blocks of foreign and quite possibly wrong code seems like a net negative value proposition. I can't even get autocorrect on my phone to do the right thing half the time. Writing code is easy. Architecture, refactoring, and solving business problems are the hard parts of the job. Writing new code is also generally the most rewarding aspect of the job. Co-pilot promises to turn that into just another unrewarding chore, like slinging 3rd party libraries together.
- jackbrookes 5y agoIts very useful for certain types of tasks that are inherently repetitive. It will construct debug strings very easily, for example e.g. type `pr` in a function with x & t and it may predict... The `print(f"The value of 'x' was {x} at time {t:0.00}s")`
- chii 5y ago
- luckyorlame 5y agocan it do my cs homework?
- miller_joe 5y agoI've been using TabNine for several years and love it. I'd be interested in hearing a comparison between TabNine and GH Copilot from anyone who has used both.
- truly 5y agoThis will lead IMO to an interesting problem, although the technology and the idea is certainly cool. Currently many programmers do not take the time to really understand how/why their code works -- programming without understanding 1.0. Essentially make library calls and fuzz around with the arguments until it appears to work. [Not wanting/suggesting to go back to the world before libraries/code completion, just stating where we are now.] This will enable programming without understanding 2.0 -- not only will you not know how/why a particular function call works, you will now fail to understand why you want a sequence of functions in a particular order.
- atonalfreerider 5y agoThe davinci-codex model that copilot uses also has the capability of translating someone else's code into plain English. This has a great value potential. Ultimately I'd like to have a conversation with a machine, where I can describe what I want, and the machine can serve me a possible answer, and then I can respond to clarify the idea.
- Jensson 5y agoLooking forward to the next generation of programmers who can only program if they have Copilot, and will complain in interviews when they are asked to code without Copilot.
- deleted 5y ago[deleted]
- deleted 5y ago[deleted]
- syngrog66 5y agomakes it even easier for both the US (via Microsoft) and Russian govs (via JetBrains) to copy, analyze and inject arbitrary code into any codebase (public or "private") used by this combo of tools
- tuananh 5y agoneovim being first class is rather nice :)
- redleggedfrog 5y agoWhat this feels like to me, after a nominal amount of time using it, is that I am now in charge of vetting the proposed code, and is it appropriate for my use case, and does it meet our coding standards and does it integrate with my code or further suggestions. Honestly it feels like constantly code reviewing, which is not pleasant nor conducive to productivity. And I do a lot of PR approval, and I shudder to think about PRs stitched together in haste because look how easy it is now to crank out code! And lastely it doesn't work well when you have a large legacy codebase that your working within.
- marceloabsousa 5y agoTotally agree. Co-pilot is just stressing more our roles as code reviewers. It’s not even a new idea - people working in program synthesis have done this for a while now. I’ve written about this a couple of years ago: https://medium.com/@marceloabsousa/the-software-shift-towards-replace-539b5558664b?sk=cfab71c9022d1e587ac2c2b451ed94f7 https://medium.com/@marceloabsousa/the-software-shift-toward...
- esjeon 5y agoCopilot thread is always hot. TBH I don't mind the plagiarism. They can use my code. The real problem is indeed the code quality, since Copilot does actively provide low-quality codes, and this will bite a lot of people. I guarantee. I don't think this massive learning approach can't be the solution. We need an extra kick. My shower-thought solution for this garbage-spewing problem is to design a new library with Copilot in mind. Tighten up the interface, and use strict patterns instead of domain-specific hacks. In other words, we can make libraries so lame that Copilot (and newb programmers) simply can't produce low-quality code. Just disregard smart programmers with fast hands. They don't need any help anyway. Don't even try to target them, because it's gonna cause more stupid flame wars...
- framecowbird 5y ago> Login to GitHub Copilot using the device auth flow and authorized GitHub Copilot IntelliJ plugin with your GitHub Account in an external browser. > Read and agree to the GitHub Copilot additional telemetry terms. Can anybody comment on the privacy aspects of this? Is the telemetry reasonable? Why on earth do I need to login: presumably so that they can associate my coding with my account to structure the data they are gathering?
- monkeydust 5y agoA product perspective: - Co-pilot will not replace software engineers, however ... - I do think it will in some cases help them be more productive as some have expressed in this thread already. - Once they open it up to fine-tuning on your own codebase I suspect it can be used to bring new engineers upto speed faster plus it get will get more trustworthy. - I do have concerns about the legal aspect of selling software built with assistance if co-pilot but a lawyer could probably get me comfortable (or not!) - I have personally found it useful for data science type tasks especially getting familiar with new libraries.
- giansegato 5y agoAny idea how to try it out? Seems like the beta is fairly restrictive in giving access out.
- anaganisk 5y agoI wonder how long before Github is forced to include youtube’s content idesque system. So that i can cease and desist even before I even push the code. And oracle, google and ms can charge my Github billing account for violations.
- AlexFielder 5y agoIn the few short weeks i have used CoPilot inside of VSCode, it's been a big* timesaver; I can type out a bare skeleton of a class, and with minimal guidance for things like naming conventions CoPilot let's you simply tab+enter through each class property. Maybe I'm missing something obvious, but I feel like CoPilot should have the ability to allow a user to define a 'class template' in the form of a block comment and then allow a user to write "make this class" or something. *Big being it's probably saved me around two hours of manually typing out 'public property... etc.'
- voldemort1968 5y agoMost of the arguments here boil down to the same belabored point, that you shouldn't expect Copilot to actually write the code for you at the end of the day. My take is it's what you make of it. Copilot is only equivalent to copy-and-pasting from stack overflow if that's how you choose to field its suggestions. As an example, I've enjoyed typing "const one_day_in_ms" and letting it finish it out with "1000 * 24 * 60 * 60". I already knew how to do that, but having GCP finish it for me and verifying on my own didn't make me feel stupider, it made me more efficient. I have more interesting problems to tackle. On the other hand, another coder could have not known this calculation and thrown their trust into GCP. That's bad practice and it's on them, not on the tool. Sometimes GCP gives me code that it learned from bad coding patterns. I know how GCP works and I know to look out for that, so I ignore those suggestions. Of course, sometimes I don't know if what looks like a good idea from GCP is actually not. I take that on as my responsibility to trust but verify. If it's writing some function to slugify a string for a URL, I check it against what people are discussing online. Does it defeat the purpose of GCP in this case if I have to check it on my own? Probably, but it's only in these specific instances when I'm doing something I'm not familiar with.