this post was submitted on 02 Sep 2024
61 points (98.4% liked)
Experienced Devs
3956 readers
1 users here now
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:
- Logo base by Delapouite under CC BY 3.0 with modifications to add a gradient
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
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.
The autocomplete is amazing
It just takes the mental strain out of syntax and I can focus more on the logic and structure of the code
Like you said much better for writing unit tests, but also for log messages and comments
Even the chat is sometimes useful but not as much. I treat it as much junior engineer assistant/rubber duck. I.e. I never completely accept what it outputs and usually review everything but quite often it gives me a different idea/approach even if it doesn’t write it 100% correct the first time. Because I always review it, having it autocomplete the next line is my preferred approach so I verify each line as they come.
Once you start to past 10/20+ lines in a row you will have a bad time.
Not just the mental strain of syntax, but also variable naming, which I find to be a much bigger hurdle. Copilot will nearly always give you a "good enough" name so you can just move on to solve the actual problem. You can always come back to rename it if necessary.
Interesting. The way I work, variable naming is one of the key areas that I would never want to outsource to an AI -- careful choice of variable names is a key part of code quality for me: unimportant things should have neutral, non-distracting names while mportant things often cause me to break out a thesaurus for just the right word.
It's important for sure. It just so happens to also be one of those things that are very easy to verify but hard to do, which is what makes it perfect for automation.
The other nice thing about letting AI do naming is that these are names that are very statistically likely given the context. That means it's more likely to be understood by others. If I come up with something myself, it might make sense to me, but it might not to someone else reading the code. I think this is especially important when you're working in your own little bubble and don't get many eyes on your code.