Live data from Hacker News

GitHub Copilot available for JetBrains and Neovim

github.com

31–40 of 446 posts

Re: GitHub Copilot available for JetBrains and Neovim

#31

So 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/d...

Presumably they are tree-sitter grammars for those languages. I think these grammars are open source so should be available (assuming they were unmodified).

Re: GitHub Copilot available for JetBrains and Neovim

#32
post #2

Can any users give their opinion on how it's helping their productivity? What problems are they finding, if any?

Tried 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…

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

Re: GitHub Copilot available for JetBrains and Neovim

#33
post #21

How well can copilot write unit tests? This seems like an area where it could be really useful and actually improve software development practices.

If you're looking for test case generation there are already mature tools for that. I doubt anything generic could improve on those.

any suggestions for said tools?

Re: GitHub Copilot available for JetBrains and Neovim

#35
post #18

Earlier quoted context omitted.

> I don't think being able to faster write boilerplate is something worthwhile But do you believe people being slower at writing boilerplate is undesirable?

It may be desirable for boilerplate to be maximally painful if it forces our collective hands to cut down on boilerplate and innovate it away

That’s a good plan if your language isn’t Go. For us I think tools to wrangle boilerplate are a lot more feasible than actually eliminating it.

Re: GitHub Copilot available for JetBrains and Neovim

#36
post #26

Earlier quoted context omitted.

Tried 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…

It's going to be great for exploratory data science. You don't really need stellar, maintainable or extensible code for that, the early stage is largely about iteration speed.

Iteration speed also depends on code being well written and performance code, you need to get results faster to iterate faster.

Also if your don't fully understand your code( when generated or copied from SO) as not uncommon with junior developers and data science practitioners, then they struggle to make even small change for the next iteration, because they don't fully understand what their code is doing and how.

When your code is composable or modifiable easily then iterations become faster because you understand what you have written. One of the reasons why analysts prefer Excel if data size is within limits.

Re: GitHub Copilot available for JetBrains and Neovim

#37
post #18

Earlier quoted context omitted.

It may be desirable for boilerplate to be maximally painful if it forces our collective hands to cut down on boilerplate and innovate it away

Who is realistically going to innovate the boilerplate out of Java if they're stuck using it at work?

That, or any job where you're not permitted to make the sweeping changes required to resolve boilerplate. Many of my jobs had such restrictions.

Re: GitHub Copilot available for JetBrains and Neovim

#38

How well can copilot write unit tests? This seems like an area where it could be really useful and actually improve software development practices.

On my current pet project, it has written almost all of the tests here: https://github.com/golergka/rs-lox/blob/master/src/compiler.... ad here: https://github.com/golergka/rs-lox/blob/master/src/scanner.r... (albeit not the screwed indentation) completely by itself. I didn't even have to write the function names, just a few macros to help it along and a couple of examples to teach it to use it.

Re: GitHub Copilot available for JetBrains and Neovim

#39
post #2

Can any users give their opinion on how it's helping their productivity? What problems are they finding, if any?

I've actually found it helpful as an API autocomplete, but... also not helpful at the same time.

So for example I was working with processing an image to extract features and a few variants of docstrings for the method got me a pretty close to working function which converted the image to gray scale, detected edges, and computed the result I wanted.

The helpful thing here was that there were certain APIs that were useful as a part of doing this that it knew but which I would have to do look up. I had to go through and modify the proposed solution: it got the conditional in the right place, but I wanted a broader classification so switched from a (255, 255, 255) check to a nearBlack(pixel) function which it then autocompleted successfully. I also had to modify the cropping.

When doing a similar task in the past I spent a lot more time on it, because I went down a route in which I was doing color classification based on the k nearest neighbors. Later I found that the AI I was working on was learning to exploit the opacity of the section of the screen I was extracting a feature from in order to maximize its reward, because it kept finding edge cases in the color classifier. I ended up switching to a different color space to make color difference distance functions more meaningful, but it wasn't good enough to beat the RL agent that was trying to exploit mistakes in the classifier.

Anyway, what I'm getting at here is that it is pretty easy to spend a lot of time doing similar things to what I'm doing and not get a great solution at the end. In this case though it only took a few minutes to get a working solution. CoPilot didn't code the solution for me, but it helped me get the coding done faster because it knew the APIs and the basic structure of what I needed to do. To be clear, its solutions were all broken in a ton of ways, but it didn't matter it still saved me time.

To give another example let's say you have a keyboard key event press and you weren't sure about how to translate that into the key that was pressed. key.char? key.key? str(key)? key.symbol? A former method of figuring out what the right key might be is looking up the code, but with CoPilot you type '# Get the key associated with the key press' then hit tab and it gives you code that is broken but looks perfect and you gain a false sense of confidence that you actually know the API. You later realize after being amazed that it knew the API so well that you didn't have to look it up that actually the key press event handles symbols differently and so it errors on anything that is used as a modifier key.

My general impression is something like: Wow, this is amazing. It understood exactly what I wanted and it knew the APIs and coded up the solution... Wait, no. Hold on a second. This and that are wrong.

Re: GitHub Copilot available for JetBrains and Neovim

#40
post #18

Earlier quoted context omitted.

> I don't think being able to faster write boilerplate is something worthwhile But do you believe people being slower at writing boilerplate is undesirable?

It may be desirable for boilerplate to be maximally painful if it forces our collective hands to cut down on boilerplate and innovate it away

In my experience whenever someone tries to "innovate" away boilerplate they end up creating shitty abstractions that are inflexible, poorly documented, and unmaintained.

Boilerplate generally exists for a reason, and it's not because the creator likes typing.

Post reply on HN