Yeah playing with Gemini for a while is very frustrating for basic programming. It did all kinds of weird things. Like one time it generated a program with like number 23.5 and when I told it the UL error it confidently lied that many BASICs allow "decimal" line numbers.
One time it generated line numbers out of order. It randomly puts comments without REM. At some point I had it add an error handler and when fixing other stuff it would just randomly forget about it and drop the error handler but keep the ON ERROR GOTO so then when an error did happen it would crash. But miraculously it was generating functioning programs almost right off the bat without me having taught it anything about m100 basic. So it had some context from somewhere. The ML code it generated would just crash so I told it to stop. It did the variable name collision thing but worse than that I think it was sharing variables for what would be different object instances in another language. It seems to have a lot of context for game logic... algorithms for physics, collisions, round processing It seems like a focused base local model for model 100 basic programming would be the way to go. Then add modules for problem domains like platformer games, adventure games, etc. Because a general model like Gemini just gets into a lot of frustrating trouble and since I didn't give it all the context and priorities it's hard to keep it out of trouble. And I think it would be better to generate to some intermediate language with more high level constructs (subroutines, methods, instantiable components or objects tasks, state machines, code libraries) and then compile to line numbered BASIC and ML. BASIC has too few guardrails. I mean it works most of the time but then you end up fighting syntax issues when you're trying to get higher level functionality working. -- John.
