Skip to main content

Suggest me a scripting language for blueMarine, Java compatible

Posted by fabriziogiudici on October 9, 2008 at 9:49 PM PDT

I've said a lot of times that I don't like scripting languages, and in fact all of my work is currently done in Java. I see it as perfectly fitting my needs, from JME to JEE, through the Desktop. But I believe in Domain Specific Languages, and I could be near to use one. In fact, I need to add scripting support for blueMarine, also considering that other applications such as Adobe Lightroom support scripting. Scripting would be targeted to users, for instance to add simple rules to automate the workflow of photo management (the first things I'd like to implement are about metadata transformation).

Now, the question: which language to use? From a certain point of view, I'd like to use Lua, it's definitely not one of the most known, but it's used by Lightroom and it would be nice to implement some compatibility (to be more precise, it looks like most of Lightroom itself is written in Lua). But, of course, implementing compatible functions is a step for the future, so in the meantime I could use something else. Of course, the language must be available on the Java platform (LUA seems to be, but I don't understand whether it's done in the standard JSR 223 way or not).

So, what? Groovy? Javascript?

Keep in mind that this would be used by advanced photographers, not people with a degree in computer science, so it should be easy.

Technorati Tags: , ,

Comments

Groovy sounds like a good choice -- but I'm obviously biased. If you expose a nice API for blueMarine, you can easily leverage it from Groovy scripts, with a readable and concise syntax. There's also a JSR-223 engine, if you need it.

Maybe take a look at Pnuts (https://pnuts.dev.java.net/). It has a REPL and a bytecode compiler (both on-the-fly and AOT), a large number of extension modules, and good documentation (http://pnuts.org/doc/). Fully access to Java classes, JSR 223 (scripting API) integration, plus there is a PnutsClassloader which can load and compile Pnuts scripts on-the-fly, meaning you can access them directly from Java, without having to go through the scripting API. It has a small community but people who use it tend to like it a lot. There's also an old article about the language which goes into detail on the pro's and cons--available via archive.org, http://tinyurl.com/4dawwa. Good luck with your selection!