2 ms·
The narrative and hype is out of control. After seeing all the praise on Twitter for the latest frontier models, I figured I'd' try to generate a semi-simple Vi
by rudedogg 1y ago
The narrative and hype is out of control. After seeing all the praise on Twitter for the latest frontier models, I figured I'd' try to generate a semi-simple View for SwiftUI. All the features I'm asking for have been covered in a 2023 or 2024 WWDC session, and are in the sample code, as well as public repos.
The prompt was "Please create a basic NSTextView wrapper in SwiftUI, that uses TextKit2 and SwiftUI best practices."
Claude 4 Sonnet produces something I can't type in and the font is invisible, Gemini 2.5 Pro produces a bunch of compiler errors.
I use this stuff for React at work, and while it's slightly better in that context, it still makes completely idiotic mistakes and it really is a toss up on whether I save any time at all IMO.
I think the positive experiences are some mix of people who:
- Lack the skill/experience to recognize bad code or issues
- Don't care about the quality at all (future upgrades or maintainability)
- Only care about the visual output
--------------------
The more I use these tools the more I think the raw generation aspect is a complete crapshoot. The only thing I've had success with is data marshaling or boilerplate code where I provide examples - and even then they'll do random things I specifically instruct them not to in the prompt. Even for small context windows. And to do anything useful I have to be a fucking surgeon with the context and spend a lot of time crafting a really good prompt, and they still mess it up frequently.
https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667.html https://www.cs.utexas.edu/~EWD/transcriptions/EWD06xx/EWD667... was posted in a comment here a few days ago, and I think it explains a lot of the issues. Programming works because it's a rigid language to communicate precise instructions to the machine. We're trying to circumvent that by using natural language, but natural language isn't precise. So the LLM has all this ambiguity to deal with, and output isn't what we want.
To counteract this the new idea is to provide tools to the LLM so it can check that its output is rigid/valid to at least fix some of the issues, but it's never going to be 100% due to the fundamental way this all works (LLMs using probabilities/randomness and us instructing them with natural language).
--------------------
Not to be completely negative, I think there are really exciting use cases that we can leverage well today:
- Embeddings for semantic/similarity search is amazing and will have all kinds of applications
- Processing error messages/logs with LLMs is awesome. They can parse out the actual issues much faster than I can