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.

1 point

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.

permalink
report
reply
1 point

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.

permalink
report
parent
reply
1 point

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

permalink
report
reply
6 points

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.

permalink
report
reply
2 points

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.

permalink
report
parent
reply
7 points

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.

permalink
report
reply
1 point

Whats the best alternative that you know?

permalink
report
parent
reply
1 point

Yep. Github Copilot is good enough for me to move all my stuff off of Gitgub.

permalink
report
parent
reply
1 point

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.

permalink
report
reply
2 points

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.

permalink
report
parent
reply

Experienced Devs

!experienced_devs@programming.dev

Create post

A community for discussion amongst professional software developers.

Posts should be relevant to those well into their careers.

For those looking to break into the industry, are hustling for their first job, or have just started their career and are looking for advice, check out:

Community stats

  • 26

    Monthly active users

  • 76

    Posts

  • 1.1K

    Comments