Looking for opinions/comments/suggestions…
A software project few have seen in action, is almost complete. Similar to Einhuger’s Lua plugin, SimScript is completely class and module based for seamless integration into any application.
What is SimScript?
SimScript for Xojo is a scripting interface ported to Xojo to add functionality to the Xojo language, and allow the creation of plugins with ease. Xojo itself contains a powerful scripting language called XojoScript. This scripting language is “used to dynamically execute code within a running (compiled) application.” XojoScript itself, although powerful, can only access properties and methods of the class or control which has been contextualized by the specific XojoScript in execution.
So what does SimScript do then?
SimScript can be used as a sole scripting language like that of Perl, PHP, Ruby, and XojoScript; Except, it allows for complete interaction between controls and XojoScript seamlessly. A developer can use the SimScript Plugin Designer to rapidly build dynamic GUI or script-based plugins for their applications. Custom controls, API’s, and OLE’s can also be used within plugins. These plugins are compiled into a small filesize format for quick distribution, or small file downloads (like compiling an entire Xojo application in only a few Kilobytes!!!). Rather than releasing a new version of software with minor fixes at a large filesize, a plugin file can be downloaded or loaded directly from the web, to change whatever needs to be changed within the application; Or add functionality. To further protect your applications, authentication/software activation may be plugin-based to deter persons from pirating your software. When a vulnerability is found, or a set of product keys is revoked, this can quickly be added to an authentication plugin to deny access to the pirated individuals. In this method, internet access would be required for your application to obtain the encrypted plugin code via the web at startup, and disable the application which is pirated.
Plugins utilize a Developer Key, specified by the developer during development, to encrypt the compiled plugin to even further protect the software from malicious users (and prevent end users from accessing Xojo or XojoScript). A SimScript Plugin can access, call, and exchange properties, variables, methods, controls, windows, and any class which has been “Pluginized.” By using the Pluginize functions, the plugin engine then knows which controls and data has permission to be accessed by a loaded plugin. If the developer needs to allow plugin development to the end user, the “PluginPermissions” can be set to allow access to certain features of the SimScript language. For example, if FileOperations haven’t been enabled, then the plugin engine will prompt the user that the commands are unrecognized (if attempting to write/read files using the language). All permissions are restricted by default to raw-text based plugins, and must be enabled in your application to allow access to FileOperations, Registry, Shell, etc. With all permissions in default, the SimScript Plugin Engine only has access to XojoScript based capabilities. It is important that a Developer keeps the application’s Developer Key a secret to prevent violating the SimScript and Xojo EULAs. Xojo exclusively prohibits developers from creating software which allows the end user to create dynamic stand-alone applications, or gives the end user access to Xojo (in effect) without buying a Xojo license.
SimScript utilizes Xojo syntax, or much of PHP/C+/JavaScript syntax (can be used inversely or mixed as well!)
The Designer features:
Visual Plugin Designer
Restore Plugins if the Designer Crashes upon Re-opening the Designer
Rapidly Create Dynamic Interfaces for Xojo Applications with event handlers or create Script-based plugins.
Give XojoScript access to Controls, Variables, Windows, and Methods in Compiled Applications without contexting.
Load Plugins from Compiled Code, Raw Text, or from the Web.
Test and Debug Plugins in your Applications before compiling, using the SimScript Desiger and Debugger.
Real Studio or Xojo Style Layout options for Library and Inspector (Controls & Properties)
Other features not mentioned…
Here is a few screen shots of the SimScript Plugin Designer, and a very basic Test-Harness application. In the Demo, the test harness is running from the Xojo Debug mode, and is linked to the SimScript Plugin Designer’s debugger as well for debugging of an application in Xojo while debugging plugins at the same time!