I was just made aware of Simba yesterday, and I like what I see, except for how RUTIS won't work on 64-bit systems. Wizzup pointed me to this thread from the release thread where I rambled off a crazy idea about another interpreter. I've since been able to do some research and it doesn't seem like it would be that big of a deal to
embed a python interpreter into Simba, it would require some C glue code to convert data types from pascal to C to python and back, but I can't imagine it would be that hard to do or noticeably slow down a script. Alternatively to writing the glue code in-house I read about something called
PyDelphi although it seems very old and I haven't been able to locate anything about it with a google search, there is also something called
P4D (Python for Delphi) which I located but don't know how good it is or what the license is (just that it is 'free').
Anyway, a python interpreter would give many advantages, I'll try to list a few:
- Support Object Orientation
- Python license is compatible with GPL, free and open source
- Entirely cross-platform (works the same on Windows, Linux, Mac, BSD etc)
- Rock-solid, time tested interpreter
- Fast
- It's python!!!!
The only disadvantage I can think of is that it wouldn't be backwards compatible with SCAR scripts, wizzup mentioned that we might not be able to pause the python interpreter, I don't know about this, but I'd assume there is some type of functionality there.
I know to a lot of you incompatibility with SCAR scripts is a big disadvantage, but I think it could be remedied rather easily. From my days SCAR scripting, I remember the syntax is rather simple (no OO etc) and I believe that the pascal statements would basically translate 1->1 into python. I can't believe a converter would be that hard to write, certainly much easier than a pascal interpreter from scratch. I'd even be willing to write this when I get some free time probably around the beginning of november. This conversion of course could be done all at once and in the background, when the user clicks 'run' on a script, transparently convert it to python and set it running, the user would never know a python interpreter was running instead of pascal one.
So basically you would have the best of both worlds, support for python and OO, and backwards compatibility with SCAR scripts, in addition to all the other benefits. What do you think?