I’ve spent the last 3 or 4 months completely re-writing Roo, my object-orientated dynamically typed interpreted replacement for Xojoscript. There have been substantial changes under the hood and to the syntax. The language has now stabilised with a Python-like appearance where tab indentation replaces curly braces. Semicolons are gone. External dependencies and third party plugins are gone. This thing is entirely written in native Xojo.
The language runs on macOS, Windows, Linux x86 and Linux ARM. Desktop and console applications are supported. I haven’t tried it in a Xojo Web app yet but I see no reason why it won’t work. Unfortunately it won’t run on iOS because it uses Xojo’s
RegEx classes which are not supported on iOS. The rewrite however has paved the way for a port to iOS if demand is there. The reason I chose not to support it for version 3 is simply because the performance of Xojo’s
Text type is poor.
Performance of the interpreter is at least twice as fast as version 2. Integrating Roo into a Xojo app has been vastly simplified and extending its standard library with your own code is now much more straight forwards. The interpreter now fires a number of events to notify you of important occurrences. for instance, you can now intercept network calls and decide whether to permit or refuse them. The interpreter is also now thread safe.
I have fixed so many bugs with the old interpreter that there are frankly too many to list.
Documentation is now extensive and very comprehensive. You can find it here.
In addition to embedding Roo in your own apps, you can run scripts from the command line or use it as a REPL. I’ve packaged the interpreter with both Homebrew for Mac and Scoop for Windows. Installation instructions are here.
Finally, you can play around with the language with the GUI IDE I’ve built. This runs on both macOS and Windows. It features syntax colouring and other goodies.
I really hope people take a look at this and if you find any issues please let me know. I will be speaking about Roo at the upcoming XDC which I highly recommend people consider attending.