Your point about Claude mixing up the Xojo API versions is a good example of where clear documentation would help immensely. The Xojo documentation on this point, API versions, is confusing to anyone who wasn’t along for the ride of v1 to 1.5 to 1. If Xojo ensured all documentation was for the most recent version or at a minimum said which version it was applicable to these issues could be minimised. Adding local documentation as a resource for the LLM coding tool is helpful.
This week I wrote a custom control almost entirely using initially Cursor, then Claude Code with 3.7. The part I did was to add the class, name it, and set it to inherit from Canvas. After that it was pretty much all done by an LLM.
All told I spent a couple of hours to get to a working, admittedly proof of concept, control that solved my immediate problem, which was that I needed something like a listbox with variable height rows plus a few other things.
The areas where it ran into problems were highly consistent; where to get the graphics object for paint events, RecordSet vs RowSet (as previously mentioned), and casting numbers to strings (it kept trying to wrap a calculation in a .tostring. If I were doing it again, I’d take the error messages from when it did those and put them into the instructions file for the LLM. It would use that as a resource and not make the error again.
Leaving aside the vibe-coding hype, my view is that LLM tools work really well when you adopt the role of architect and treat it as a very fast junior developer. A junior developer that doesn’t get upset when you tell it 5 times in a row “still not working, here’s the error message”. It invariably cheerfully responds “oh yes, that’s because api xxx requires blah blah, I’ll fix that”. They also work superbly well at understanding a new code base. Even if you don’t want to use an LLM to write the code, ask it to understand and document a code-base. You’ll be shocked how good the readme.md is. Ask it to look for classes of errors and it will give you a clear list of whichever type of error you’re interested in.
If I can provide a non-Xojo example of something else I did this week. I asked Claude to make a typescript app and gave it a text file with the 10 questions. It gave me a usable app to gather the responses with a results dashboard behind a login. 15 minutes from start to finish! It then was deployed in another 5. Would that scale, no, but for the need it was perfect. I should say that when I “asked it”, I gave it a very clear two paragraph set of requirements. Those requirements were akin to what I would give to an enthusiastic but clueless junior dev - no room for misunderstanding.
If you’re dismissing LLM coding tools don’t. Spend a few hours and try to build something with one, you’ll probably be shocked how far it’s come so quickly. I’ll admit I’m a massive enthusiast. I’ve spent much of the last five years writing Python code around machine learning and AI. In the last six months I’ve incorporated LLM coding tools into my coding workflow and it’s been a remarkable improvement in both quality and speed to deliver. I’m worrying less about obscure syntax issues and spending more time on architecture.