GumTree Scripting Proposal
Many scientific applications support scripting for scientist to perform instrument control and data manipulation. As a universal scientific workbench, GumTree should leverage available scripting languages and tools to enable scripting to the users.
Scripting support in GumTree
Available langauges for Eclipse RCP:
- Beanshell
- Pros:
- A very lightweight Java-like scripting language
- Aiming to be integrated with the scripting API in JVM
- Used in Netbeans
- Cons:
- Not a common scripting language
- Pros:
- Jython
- Pros:
- Commonly used in the scientific area
- Cons:
- Always lag behind from the latest C-Python specification
- Slow performance when compares to C-Python
- Pros:
- Groovy
- Pros:
- Claims to be the most powerful (language syntax wise) language that runs on JVM
- Cons:
- This is one of the youngest language in the scripting world
- Pros:
- JRuby
- Pros:
- The most popular scripting language in the past one year.
- Java version of Ruby runs faster than the its own Ruby interpreter.
- Cons:
- ??
- Pros:
- JavaScript (Rhino)
- Pros:
- Officially supported by JVM
- Cons:
- Less object oriented than Ruby and Groovy
- Pros:
- Jaskell http://jaskell.codehaus.org/
- Scala http://scala-lang.org
- TCL/Java http://tcljava.sourceforge.net/docs/website/index.html
- Pnuts https://pnuts.dev.java.net/
- JavaFX http://java.sun.com/javafx/
- Fortress http://fortress.sunsource.net/
- Jawk http://jawk.sourceforge.net/
Option 1: Using adhoc interpreter with Eclipse Monkey
Each scripting language listed above has its own interpreter to evaluate commands and scripts for execution. On the other hand Eclipse Monkey provides a Java based DOM object (via extension point) that acts as shortcuts to access different aspect of the Eclipse system. Combining a particular language and Eclipse Monkey, users can control the workbench (eg, display a graph in new view, or switch to another perspective) via the interpreter.
Option 2: Using Java SE 6 Scriptig API
Scripting under RCP can be unified by using the JVM to evaluate commands, see:http://www.devx.com/Java/Article/34545?trk=DXRSS_JAVA
Links
Programming Languages for the Java Virtual Machine
scripting.dev.java.net
Scriptlandia
Scripting with Cicada
GumTree has a port based process framework that provides a reconfigurable way to perform data reduction and analysis. Currently the process framework (aka Cicada) design is very static because the process chain structure (described in the xml recipe files) and the algorithm code cannot be simply reconfigured at runtime. In order to provide a more dynamic behaviour for expert users, scripting capability on the Cicada framework is essential.
What can be scripted?
- Process chain structure
- Algorithm (or what is being wrapped by the processor)
