Interesting to see the benefits and drawbacks called out.
In this regard, AI-generated code resembles an itinerant contributor, prone to violate the DRY-ness [don’t repeat yourself] of the repos visited.
So I guess previously people might first look inside their repo’s for examples of code they want to make, if they find and example they might import it instead of copy and pasting.
When using LLM generated code they (and the LLM) won’t be checking their repo for existing code so it ends up being a copy pasta soup.
Makes sense, even if it’s not good practice.
It is really useful for hobby projects! I needed a recursive function to find a path between two nodes in a graph and it wrote me something that worked with my data in a few seconds, saved a bit of time
saved a bit of time.
For now.
?
Best practices exist to save you time and nerves in debugging.
Meh, I knew that my graph would never have loops and would only ever have one path from A to B, so it did it well enough. Pretty easy to test!
Good practices don’t matter much for small hobby projects.
Training bad habits… vs. fun, i get it.
I find that code way too fun to write to let someone or something else do it for me 😂
Actual time spent micromanaging the AI until it produces the perfect code may or may not exceed writing the code yourself.
That’s fair, and if I were getting paid for it I’d do the same! But it’s for a project that’s essentially a pomodoro timer 😆 so it’s harder to justify the time
what a shocker
I use it mostly as a help menu. Details of the function and parameter settings. Also fixing errors. I don’t use it to generate code for me though.
Using it to generate code isn’t inherently bad (outside of copyright concerns). Especially in “stupid amount of boiler plate” languages/etc.
But the problem is that people are lazy. They don’t bother understanding the output, making sure it does what you want it to, etc. It’s not that different than people copy pasting code from reference material. Part of the beauty of software development is that you don’t have to solve every problem someone else has already solved. But you do need to know what your code is doing and why.
Copilot is a shortcut to code that “works” with less requirement to know what’s happening.
I thought we solved the boilerplate issue with templates and snippets like 30 years ago.
Not only that, but we solved it in a deterministic manner. The way LLMs go about it, by picking something they think sort of maybe looks like the right thing is more bother than it’s worth.
It’s awesome for debugging for me.
Also helped me a few times with recursive logic.
As with any AI solution it’s “garbage in. Garbage out.”
Write your code normally. Then ask to generate comments? Add logging? Any tips for improvements?
You have to already know how to code so you know what to ignore.
Exactly, ai only speeds up your coding, quality still depends on you
If I don’t use copilot to give me a piece of best practice code, I’m probably going to go and find it with a search engine.
Obviously I’m not going to do it for every little thing but if I’m going to implement a * somewhere I screw with that what, once every 5 years?I’m going to go and look how someone else did it and probably take their exact implementation and make minor modifications.
I’m not an absolute copy and paste fiend but I don’t have the time to reinvent the wheel every time I want to do something. For the most part it’s faster to go and grab crowd vetted code from someone that it is to go back through my own stuff and source my own implementation in the last project. Hell, and a lot of cases there might even be a better implementation than I used the last time I borrowed it from someone else.