motrm 13 days ago

I wanted to like this but turned it off as I found it too distracting.

As a competent programmer I've already got an idea of what I'm about to write in my head, yet having an immediate prompt suggest a "do you mean this?" turns that train of thought away from what I'm writing and instead to "is the suggestion correct and what I want?" before accepting or ignoring it.

It's not for me, I just want to get my brain waves into the IDE as quickly as I can.

That said I can certainly see how it'd be useful when working with a language you're not super familiar with, perhaps one you just dabble in occasionally, or where you're learning programming in general, or a new language, where these hints could save you a quick search for "for loop syntax in $LANG".

It's very exciting to see what will come out of AI. There's a lot of stuff not relevant to me, but in time far smarter people than I will conjure up ways to make my life easier.

  • hu3 13 days ago

    I agree but...

    I'm retraining my brain to cooperate more with AI suggestion because they will get larger and more precise too.

    It's going to become a force multiplier wether I like it or not, so I don't want to be left behind.

    In a near future, I'm afraid that

    "this guy still types most of his code, can you believe that?"

    will be a popular joke.

    • btown 13 days ago

      Yep, I find that Copilot etc. respond very well to pseudocode comments, so much so that I can write a comment about a particularly gnarly bunch of syntax I'd otherwise need to write, and (even in a language I use every day) it takes me out of flow less to have Copilot write that for me. Because Copilot knows how to match brackets, can think of descriptive names for temporary variables, all those things that I don't want to have to worry about. I can keep my eye on how the interactions work together, the temporal flow of data through the application, things like that.

      If the price of this is sometimes needing to learn to ignore the gray text before I write that pseudocode comment, well... it's no worse than Clippy, and we all survived that era fine!

  • bitwize 13 days ago

    I don't even use bog-standard symbol-level autocomplete. I don't want video game shit happening in my FOV when I'm trying to write code. A big part of it is what you mention: the jarring context shift between typing the thing and checking to see if the completion of the thing is correct.

    There is evidence that ADHD sufferers are more distracted by such "helpful" IDE features. But I think we're going to just have to retrain our brains to accommodate them because we'd be leaving productivity on the table otherwise.

  • rpigab 13 days ago

    I feel that way too, though in some cases I'd love to be able to summon this on-demand, make the suggestion appear on alt-enter or other context menus. Then I could either accept the suggestion, keep typing the line, continuing to process suggestions until I change lines, or dismiss the suggestions.

  • chuckadams 13 days ago

    I find it's really handy for autocompleting the brainless grunt-work parts: e.g. I have a dozen keys from a json response I'm assigning to a DTO, one per line, giving them a default of blank if the key is null/undefined. After I've done a couple, the tab-complete AI is really good about continuing the same pattern for the rest of the keys, I literally just hit <tab> <return> repeatedly til done. It's not doing the thinking for me, just the typing.

  • adverbly 13 days ago

    I have the same concerns.

    I wonder if they could have a "double tap" setting where you would have to press tab to see the suggestion, and then you could press tab again to accept it. That way, you could "opt in" if you know that you're about to write some brainless boilerplate or if you know you want to ask for help.

chuckadams 13 days ago

I've never been a fan of most AI code assistants I've come across, but this one works wonderfully out of the box. Basically what I wanted out of Tabnine. I also have Continue (rather than JB's paid AI plugin, I'm already paying for GPT4 anyway) but I rarely use it, since it's pretty cumbersome in comparison.

There's times though when it's distracting, so I'd love it if I could bind a key to toggle AI completions on and off. And on the other end of things, maybe another key to suggest multi-line completions...

uticus 13 days ago

Code-assisted use cases:

1. New code. Esp boilerplate, templated sections, default implementations.

2. Existing code, altering purpose.

3. Existing code, same purpose but refactoring.

For step 1, full-line completion seems like a halfway step. If the expanded result can usually be expressed with something more terse, why not go 100% and rely on a language that primarily uses terse version? Guess I'm waiting for the magical AI-universo-scripto language where only the bare minimum is typed by a human, and hovering (or IDE view mode) reveals details or full description. Or perhaps something more declarative: provide the terse goal, check the execution plan to make sure the full implementation fits or decide between competing implementations for same goal.

For step 2, full-line completion is great because the surrounding code is left intact (and in fact is needed for reasonable AI suggestions).

For step 3, I could see full-line completion being of use, but more limited since full-block or full-section completion might be more appropriate.

orf 13 days ago

I like the direction, but it’s really annoying when the completions get mixed up with the actual, static autocompletions.

Like, typing the start of an attribute and having the autocomplete pick up the rest of it, only to be suddenly replaced with the wrong attribute name by the model. If you press tab at the wrong time you complete something utterly wrong.

zachmu 13 days ago

JetBrains IDES already have copilot integration which works quite well and which I use constantly.

This part piques my interest though:

> It works locally and is available offline. This means you can take advantage of the feature even if you aren’t connected to the internet.

Anybody familiar with copilot tried this out and have thoughts on how it compares?

  • zachmu 13 days ago

    Reading the fine print a bit more, I see this is limited to single-line completions. Copilot will often write complete blocks for me.

    Might still be nice to use when I'm on the road though.

  • mike_hearn 12 days ago

    Yeah I've tried both and prefer JB single-line completion. Being local only is great, but it's also just better trained. Copilot multi-line completions are often too distracting, take too long to check and are frequently wrong. The JB implementation seems somehow less aggressive and error prone. It won't show up unless it's more confident, which works better.

garblegarble 13 days ago

The announcement doesn't specify, but it looks like they are using a llama finetune for this (and basically llama.cpp exposed with gRPC)

lights0123 13 days ago

"For example, if you’re using x86-64 architecture, the model will run on the CPU, whereas if you’re using ARM64 architecture, the model will use the power of your computer’s GPU."

I assume this actually means "we only support Apple Neural Engine for hardware acceleration".