I am a professional coder all day long, but at night and on weekends I want to build games and apps. I originally intended to use Corona, as the results would then run on iOS, Android and desktops, but I don’t want to come home after work to sit at my desk and code. My ultimate intent is to convert my Codea apps to Corona, but for now, I want something Lua that I can use on my couch or in bed… on my iPad.
I am reaching some limits in Codea, however, as my current, first project is growing. I’m not sure if these problems will eventually drive me elsewhere.
The first problem is that the “project manager” is way too simple for a lot of classes. I need a folder structure, or keeping things organized and finding them will become agonizing.
The second, bigger problem is how badly Codea handles bad code. Mistype a variable, or use myobject.somecall() instead of myobject:somecall() and your app just stops, with no clue of why or where. A normal environment/language gives you a stack trace. Codea could at least tag the line where execution terminated, and give you a button to press to jump there (basically any time you try to call a nil value). I know it’s more complicated than that because the app does keep running, but we need something (a list of nil calls and their locations?). Going back and adding print statements until isolating the line of code is an agony that grows and grows and will soon become untenable, at which point I’ll have to migrate to another environment.
The last problem is just inherent in Lua, that it’s a sloppy, typeless, scripting language, which makes it easy to learn and flexible, but also very easy to make the sorts of mistakes outlined above. But better developer tools (debugger, stack trace, etc.) in Codea would help a lot.
FYI, one solution I intend to proactively pursue is to write my own code analyzer to look for my two most common mistakes, calling mistyped object/function names, and referencing variable names in expressions which are never assigned values (which are likely more typos). You could add that to Codea as well.