codingdave
3 days ago
You aren't missing a thing. LLMs produce code that is somewhat correct, but wrong enough that it needs correction. The people promoting "vibe coding" are saying that you can just tell it the concerns, and eventually it will land on something that works. Everyone else codes the corrections themselves. But AI simply does not produce working code without human interventions.
It also does not keep up to date with releases. That is not a valid expectation, and if you are working with leading-edge releases and libraries, LLMs will not help. On the same note, it cannot innovate - it will give you code that fits common conventions. Most of the time this works, but if you are doing truly novel work, its results will frustrate you more often than not.
PaulHoule
3 days ago
I have been using AI assistants to help with a project that uses MUI for React. We're using a version of MUI that is a few versions old. It is hugely helpful at figuring out what kind of sx to put on an element or what to put in a theme to get things to look right. It makes mistakes, but if you tell it what you see in the F12 tools, read the manual and think a bit, it does pretty well.
It loves to use deprecated APIs, for instance there are a lot of props that you aren't supposed to use anymore and you're supposed to use the "slots" prop instead. It's not hard to change the code and you could probably ask them to do it, but it's the kind of problem I run into.
With SQLAlchemy I find assistants cannot make up their mind what version of SQLAlchemy they are generating code for. Between talking to my assistants and reading the manual I understand a lot about what changed in different versions, but what I really want is to have it look at my POM/packages.json/pyproject.toml and always give me advice for the versions I am using.
This isn't just an LLM problem, one of the "product ideas I don't have time to work on" in my file is a search engine for programmers that indexes the documentation for the actual versions of all your dependencies, so you are not stuck with Google's brain damaged behavior of returning results from random JDK versions. For instance, "String Javadoc" returns results for JDK 8 and JDK 11 (end of life!),
https://www.google.com/search?client=firefox-b-1-e&channel=e...
whereas a lot of us are developing to JDK 21.