Hello everybody,
What an interesting discussion here.
Nate, please let me tell you why I developped iziBasic... it is just because I did not like SmallBasic!
SmallBasic is an interpreter, iziBasic a p-code compiler. Developping an interpreter is fairly easy (you may give a look to the tinyBasic sample application which is a Basic interpreter developped with iziBasic), developping a compiler is a complete different story.
To be honest and complete, I also have to say that iziBasic is my first try in this kind of coding exercice and I took some options at the early stages which lead to its major lacks that have been mentionned.
The main one was to develop a one pass compiler (meaning it reads the source code once) instead of a two passes compiler. This was faster to do but also brings some limits.
The second major one was in developping the math parser, and this was not a piece of cake as I took the option to develop it in linear coding instead of the standard recursive way of proceeding (remember, iziBasic is a hobby for me, so I experiment with it).
A few other random comments:
1. Thanks to JoeV and tuka about the way they gently talked about my support, this is always nice to read!
2. An editor is not integrated within iziBasic because I believe that Piaf (SrcEdit and maybe a few other editors) are, by far, very optimized and dedicated applications for this purpose. So, I did all my best to integrate iziBasic with Piaf, providing syntax highlighting and easy launch of iziBasic from within Piaf, and returning the error code to Piaf in case of a compiling error.
3. SmallBasic is maybe more simple than iziBasic somehow, but it cannot go so far in developping real applications that can be then given away or sold to plenty of people. On the counterpart, SmallBasic is OS independant, which is a very good thing (same thing with tinyBasic... that I have ported to Pascal and that can be run on a PC).
4. Menu setup is not really possible without a resource editor like Bird (or RsrcEdit) because there are no Palm OS API to build a menu at runtime.
To end up, let me just rectify one point that Natee wrote: "
In the skeleton of the program that vizi makes when you make a new project, the program is constantly redrawing all objects on the screen in a loop.".
This is not true, the program is not constantly redrawing objects in a basic skeleton unless you told it to do so...
Cheers,
aldweb