

Code written by AI is really poorly written. A couple smells I’ve noticed:
- Instead of fixing error cases, it overly relies on try:catch structures, making critical bugs invisible but still present. Dangerous shit.
- It doesn’t reuse code that already exists in the project. You have to do a lot of extra work letting it know that your helper functions or CSS utility classes exist.
- It writes things in a very “brute force” way. If it finds any solution, it charges forward with the implementation even if there is a much simpler way. It never thinks “but is there a better way?”
- Likewise, it rarely uses the actual documentation for your library. It goes entirely off of gut instincts. Half the time if you paste in a documentation page, it finally shapes up and builds the code right. That should be default behavior.
- It has a string tendency to undo manual changes I have made, because it doesn’t know the reasons why I did them.
On the other hand, if you’re in a green field project and need to throw up some simple, dirty CSS/HTML for a quick marketing page, sure, let the AI bang it out. Some projects don’t need to be done well, they just need to be done fast.
And the autocomplete features can be a time saver in some cases regardless.
Agreed. I use it in my daily workflow but you as the senior developer have to understand what can and cannot be delegated, and how to stop it from doing stupid things.
For instance when I work in computer vision or other math-heavy code, it’s basically useless.