As a senior developer, I don’t find copilot particularly useful. Maybe it would have been more useful earlier in my career, but at this point writing a prompt to get copilot to regurgitate useful code and massaging the resulting output almost always takes as much or more time as it would for me just to write whatever it is I need to write. If I am able to give copilot a sufficiently specific prompt that it can ‘solve’ my problem for me, I already know how to solve the problem and how to write the code. So all I’m doing is using copilot as a ghost writer instead of writing it myself. And it doesn’t seem to be any faster. The autocomplete features are net helpful because they’re actually what I want often enough to offset the cost of reading the suggestion and deciding if it’s useful. But it’s not a huge difference (vs writing it myself) so that by itself is not sufficiently useful to justify paying the cost myself nor sufficient motivation to go to the effort of convincing my employer to pay for it.

  • The autocomplete is fucking fantastic for writing unit tests, especially when there’s a bunch of tedious boilerplate that you frequently need SOME OF. I’m also really impressed by its ability to generate real code from comments or pseudocode.

    Generally, though, I find it pretty awful for writing non-test code. It too often hallucinates an amazing API and I kick myself for not knowing it existed. Then I realize it’s because the API doesn’t actually exist, and the dumb fucker is clearly borrowing from a library from a completely different stack.

  •  lime!   ( @lime@feddit.nu ) 
    link
    fedilink
    English
    73 months ago

    i find it useful for things outside my areas of expertise. been doing a lot of devops lately and even though it usually fails in the specifics it can generate the broad structure of a yaml pipeline and enough pointers that i can find the right thing in the docs.

  • I’m actively campaigning at work to have github be declared no longer safe for data we need to keep sovereign. This includes all our ansible junk. As the corporation is based in America and is comically ignorant of the privacy rules this particular rest-of-world sub-organization needs to work under to keep data from getting to America - arm’s length no-shared-data kind of op and everything - it’s continually baffling we used github.com before. With this it seems a sad joke for security, privacy, and compliance.

  •  Jim   ( @jim@programming.dev ) 
    link
    fedilink
    English
    43 months ago

    The autocomplete is nice but I don’t find it a game-changer. The comment about writing tests is on point though, but that’s the only place I found out useful.

  • Like most have already said, the auto complete is top tier while the chat is hallucination-riddled and not always useful. I find that if I’m asking Chat a question, my problem is already so complex that the AI struggles to answer it without the entire context of the application. It will give me unrelated answers, fake answers, or extremely basic ones that miss the broader context. It’s really a coin flip on whether it will help.

    I have also had the autocorrect make a mistake once and that was extremely annoying. It was the type of mistake I would have made but took way longer to figure out because I trusted it too much

    • Like most have already said, the auto complete is top tier (…)

      My experience is the exact opposite. Even though it has its moments, more often than not it just hallucinates and proposes a lot of stuff that neither matches definitions nor could possibly compile. I guess that this might reflect the impact of having classes with similar names in multiple namespaces but it’s bad to the point I prefer to rely exclusively on plain old autocorrelation.

      • It could also be the language choice, which one are you utilizing? I could see some languages having a worse experience than others.

        I’ve found it is exceptionally smart with bash. It often knows what to do better than I can, because I’m no master at bash. I’m proficient enough to know when it’s right though, and it’s usually pretty on point.

  •  Gamma   ( @GammaGames@beehaw.org ) 
    link
    fedilink
    English
    33 months ago

    I rarely use the prompt stuff, but it’s one of the best autocompletes I’ve ever used though since it usually finishes a line or two when I have part of it typed. Works great for things like conditionals and loops, not as good at more complicated code so I usually ignore it.

  • Nah, it’s all hyped up bullshit that has to be babysat and manipulated to a degree that you may as well just write your damn code.

    But beyond that, I’d argue that it’s actually damaging for engineering organizations, because it means the org is incurring the maintenance cost of code not written by its engineers and that has no real thought put behind it. Maybe you can eventually coax it to produce code that’s not completely broken shit, but it’s code that your org doesn’t actually “own” from a maintenance and knowledge-base perspective. The social aspect of code maintenance with this shit is always massively overlooked.

    • I have not and will not ever use AI generated code that I don’t thoroughly understand. If you properly understand the code you’re committing there shouldn’t be any damage. And beyond AI you should never commit code that you don’t properly understand unless it’s a throw away project.

  • Nop, it’s slow and dumb imo. It has only ever been able to write stuff I could type quicker and with less bugs anyways.

    chatgpt has been helpful two or three times. And it makes a decent ish code monkey when you give it a template. But in any editor with multiline editing it’s redundant

  •  mozz   ( @mozz@mbin.grits.dev ) 
    link
    fedilink
    1
    edit-2
    3 months ago

    Copilot and that whole model is a bunch of shit

    Get Claude.ai, do the thing of pasting the code you want it to modify into the chat window, and it’ll spit back out some modified sections of code you can put back into the file. It is more time consuming, but it actually works.

    For intense operations you can make a project, upload the main headers and documentation, and it’ll absorb them into its sphere of awareness and start being able to take account of them when it does the above in chats within that project.

    It is not perfect (as no LLM assist is) but it saves a lot of time and is not beset with the growing incompetence and failure with which OpenAI seems to be afflicted more and more with every passing month

  • I use chat the most. It’s pretty good once you understand the importance of building context, set up personas, and feed it workable prompts. The biggest mistake I see people do is presume that you can expect it to output gold when inputting garbage.

    Once you build up an understanding of what personas work for your personal tastes and what context you need to have, it can output impressive results. The most success I’ve been having is with somewhat complex refactorizations. Stuff like “refactor X so that Y and Y” can save you a lot of time.

    The most disappointing experience has been with writing unit tests. copilot has this infuriating tendency to remove old tests when you’re prompting it to add new ones. You need to explicitly request it to append tests to file X without overwriting existing tests for it not to mess up, and even then results are sketchy. For unit tests it’s also important to setup good contexts otherwise whatever time you save by prompting copilot to write them will be wasted refactoring code to use specific frameworks and follow specific styles.

    • I’ve run into that exact issue with copilot (deleting my tests). It is infuriating.

      I don’t think I’d trust it to refactor code for me, not for anything important. I’d need to completely understand both the initial state and the result on a statement-by-statement level to be confident the result wasn’t secretly garbage and at that point I might as well write everything myself.

  • I primarily use it for C++ in Unreal Engine and use it almost exclusively to write log statements. The way to log something is done via a macro like so:

    UE_LOG(LogCategory, Warning, TEXT(“My variable: %s”), *SomeStringVar)

    Writing that boilerplate soup gets tiresome after a while, so having Copilot autocomplete the log statement for me based on other statements in the same file and the context of the function is godsend.

    It does of course happen that the text contents are wrong, but then I have that skeleton to work with. Just erase the text and type the correct contents I want. Saves so much time.

    • I’d create my own macro or function for that. I have enough ADD that I cannot stand boring shit like that and I will almost immediately write a pile of code to avoid having to do boring crap like that, even with copilot.