Live data from Hacker News

GitHub Copilot available for JetBrains and Neovim

github.com

391–400 of 446 posts

Re: GitHub Copilot available for JetBrains and Neovim

#391
In 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.'

Re: GitHub Copilot available for JetBrains and Neovim

#392

Earlier quoted context omitted.

Almost everyone does search like that, its not about doing something but about finding best and easiest way to do something.

If you mainly deal with 1-3 languages on a daily basis that you have mastered, you don't routinely search for "How do I do xyz in P". Maybe if you're a junior or intermediate developer, or have a poor memory. But doing that frequently is a clear indicator that mastery have yet to been achieved. It's not wrong or bad to search for help, but it doesn't indicate mastery of the language you're using.

I would say if you work in a narrow domain with a single language then yes, you might not need much searching.

However if you routinely switch among 3-5 languages you will get confused by naming and idiomatic approaches.

Ex: 1. Was it toUpper or upper or upperCase ?

2. What was the most idiomatic way to filter some collection?

3. Was it justify-content and align-items or vice versa?

A good IDE will generally solve first

Presumably copilot should help with second by supplanting search.

Third one I do hope copilot would help there..

I would say not remembering the names of some method is not an indication of lack of mastery.

Even creators of popular libraries and programming languages have admitted they will use search to refresh their memory.

Re: GitHub Copilot available for JetBrains and Neovim

#393

Earlier quoted context omitted.

Copilot is used by human programmers. It's not cloning entire programs, little bits of programs that are curated and assembled into something new are easily going to past the test of transformativity. You go into court with that argument, and the other side will just point out that you have no way of showing the entire program you're complaining about was written by machine. You seem to be arguing that if it includes…

I'm sorry, but I think you have not thought my argument through. First, I'm well aware that a whole program is not an infringement. It doesn't have to be for there to be infringement by some piece of code in the program , which would be what I was arguing. When I go into court, what I will say is, "This piece of code infringes, here is my original." The court will rule on whether that piece infringes. At that point,…

Frankly, I think it's on you to lay out your argument in full rather than assume everyone is privy to your thought process.

You seem to coming at this as if the law is a purely mechanistic thing that can quickly resolve disputes, overlooking how these things play out in the real world, like Oracle v google going on for a decade or the even longer litigation involving SCO and IBM.

I mean, what makes you so sure the court is going to give you a quick judgment on the infringement, or that it's going to agree with you about the size of code fragment that that is sufficient to infringe? Perhaps if they do verbatim copies of some unusually original algorithm you have developed, but given the fact that Copilot enthusiasts mostly laud it for it's ability to generate decent boilerplate/housekeeping code, a court might well find that the similarity to your code isn't infringing because the code in question doesn't do anything very distinctive. Commercial code shops are risk averse, it is true, but they also tend to have house styles on everything from variable naming to formatting that would further muddy the waters.

I feel a lot of your argument is begging the question (in the legal sense of assuming your conclusion) without considering whether the court will agree your code was infringed upon. Surely you can can agree that sufficiently small code fragments won't meet this threshold because they're too basic or obvious. Because your whole argument here rests upon that assumption, it comes off as a wish fulfillment scenario where Copilot disappears because nobody likes the risk calculus; your stated goal of 'making Copilot a dead product' seems more emotional than rational.

In reality it will take you a long time to get a result, and if enough people find Copilot useful (which I suspect they will), legal departments will adapt to that risk calculus and just figure out the cost of blowing or buying you off in the event that their developers carelessly infringe. If it sufficiently improves industrial productivity, it will become established while you're trying to litigate and afterwards people will just avoid crossing the threshold of infringement.

Honestly, this exchange makes me glad that I don't publish software and thus don't care about license conditions on a day to day basis.

Re: GitHub Copilot available for JetBrains and Neovim

#394

Earlier quoted context omitted.

> The onus is on you to convince the skeptics. Is it? Look, I don't care at all if you use copilot; you can use notepad to write your code if that floats your boat; do whatever you want. What the parent post said is: Copilot is useful; it helps you write code with autocomplete suggestions. If you think that you don't get productivity gains from an IDE or you're in the 'no IDE makes you more hardcore and better progra…

> Well, it's free to use right now.... From copilot "additional telemetry" > If you use GitHub Copilot, the GitHub Copilot extension/plugin will collect usage information about events generated by interacting with the integrated development environment (IDE). These events include GitHub Copilot performance, features used, and suggestions accepted, modified and accepted, or dismissed. This information may include pers…

> suggestions accepted, modified and accepted, or dismissed. This information may include personal data, including your User Personal Information

Seriously wtf, my legal department will have a heart attack if they read this.

Re: GitHub Copilot available for JetBrains and Neovim

#395

Why are people not bothered by privacy concerns in this case?

I 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.

Re: GitHub Copilot available for JetBrains and Neovim

#396

Earlier quoted context omitted.

Copilot also optimizes for speed to a degree. It's akin to advanced auto complete. IntelliJ auto-completion is great. As much as it pains to say this, I don't think I will be as effective writing Java in Vim as much as I am with IntelliJ. The key differentiator is the auto complete speed. Copilot I feel is just auto complete on steroids. It may not be perfect yet, but there is definitely a problem it solves.

Have you used it? My experience was quite atrocious. Copilot is not auto complete. It’s nonsense. I attempted to use it continuously for three weeks. I tried because I know someone who built it and I wanted to give them the benefit of the doubt. It never prompted me with any code that was useful. It only ever slowed me down and caused me frustration. It’s nothing like Intellisense. It’s just trash.

Try tabnine? It doesn’t generate so much nonsense because it’s all generated based on only your own codebase.

Re: GitHub Copilot available for JetBrains and Neovim

#397
post #186

Earlier quoted context omitted.

In 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 solv…

Formally 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 in…

I see this too!

I think Edwin Brady also does.

Idris code is short and clear.

There is much less of it – for instance, as a kind overly specific example, serializers/deserializers and API code can be automatically generated from the model definition.

Idris code tends to sort of “fold in” test code into the function definitions themselves, so you do less work AND it’s much more rigorous.

Then there’s the compiler IDE interface which is explicitly intended to be an upstanding citizen in developer workflows.

I also want to mention how easy it is to write Idris compiler backends for any given language. This is on purpose, and is made possible by what Idris is: It’s dependent types, and dependent types is automation of the automation.

So it’s not a question of “making muggle developers eat their formal vegetables” or the like. It’s that when the automation of the automation hits, it makes work so much faster and more efficient and more pleasant that it outcompetes the slop because slop is slop. Idris might be that automation; It might not. We’ll see, right?

I’ve picked this hill to die on. At least one death, of something. Maybe just a feeling or a hope, but something.

Re: GitHub Copilot available for JetBrains and Neovim

#398
post #213

I’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. Gi…

I also fear that Copilot will be teaching anti-patterns.

Just tried something really simple: def is_palindrome

Copilot suggestion was

  def is_palindrome(word):
      if word == word[::-1]:
          return True
      else:
          return False
facepalm

So good for technically correct solution but still...

This is an anti-pattern I think in pretty much any language that I know of and something that about half of my beginning students try when they learn about branching..

UPDATE: more howlers along the same vein

  def haystack_contains_needle(haystack, needle):
      if needle in haystack:
          return True
      else:
          return False

Re: GitHub Copilot available for JetBrains and Neovim

#399

Earlier quoted context omitted.

> The onus is on you to convince the skeptics. Is it? Look, I don't care at all if you use copilot; you can use notepad to write your code if that floats your boat; do whatever you want. What the parent post said is: Copilot is useful; it helps you write code with autocomplete suggestions. If you think that you don't get productivity gains from an IDE or you're in the 'no IDE makes you more hardcore and better progra…

> Well, it's free to use right now.... From copilot "additional telemetry" > If you use GitHub Copilot, the GitHub Copilot extension/plugin will collect usage information about events generated by interacting with the integrated development environment (IDE). These events include GitHub Copilot performance, features used, and suggestions accepted, modified and accepted, or dismissed. This information may include pers…

It depends on semantics and your interpretation of value.

In the eyes of most people free == 'something that i don't have to pay for through my bank accounts or other means', as opposed to caring about analytics, telemetry etc.

At least AFAIK that's the common usage and what almost everyone means, though it's definitely worth it to talk in more detail about what hides under that term most of the time!

Re: GitHub Copilot available for JetBrains and Neovim

#400
post #289
post #213

I’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. Gi…

Did you try it? Because I've been using it for weeks and it makes me read these types of comments as "I don't understand the value of the internet" or "what's the purpose of owning a phone". It's night and day if you have it enabled or not. There's just no question about the value proposition once you start using it. I mean, you can tell comments here from people who have actually been using it, and people who have n…

This is a cloud-based code suggestion platform. No corporation with a solid secrecy policy will allow you to use it. For private use; it costs so I prefer just learning the field. What precisely convinced you?
Post reply on HN