Scripting Interface

Michelle Levesque recently posted about her discovery that scripting the existing partial implementation of Helium would help her develop the rest of it. Scriptability is actually one of the system's must-have features: instructors must be able to create accounts and projects by the dozens, to assign people to groups by processing ad hoc flat files, and so on.

So what are our options?

  1. Web services: have scripts in Perl, Python, and whatever talk to the web interface we're building for Helium anyway.
  2. A library of bindings to whatever scripting language(s) we choose to support (probably managed using SWIG).
  3. Use of a Java-friendly scripting language that can talk to Helium's model directly.

The third option appeals to me most, as it seems like the least work. Several scripting languages, like Jython (the Java implementation of Python) and Rhino (Mozilla's pure-Java implementation of JavaScript) can manipulate Java classes directly. It sounds like a good fit, but I've never used either in anger. I'd enjoy hearing from anyone who has...