Login  Register

Re: Scripting languages and API

Posted by Jean-Yves Tinevez-2 on Dec 25, 2009; 10:55am
URL: http://imagej.273.s1.nabble.com/Scripting-languages-and-API-tp3689913p3689915.html

On Dec 24, 2009, at 8:19 PM, David Webster wrote:

> I agree with Herbie. I started to learn Javascript, then decided  
> that it
> woud be less confusing to just learn Java. I'm generally not sure  
> why there
> is such as proliferation of scripting langauages that seem to do  
> more or
> less then same thing. Perhaps rather than expending efort to  
> maintain other
> scripting langauges for ImageJ, the effort should go toward  
> upgrading the
> use of Java, ImageJ macro langauge, and JavaScript.
>

Hi all.
Merry Christmas by the way, hope you are enjoying it as much as we do :)

I would like very much to advocate for scripting in ImageJ, being a  
great fan and user of Jython.

David and Herbie seem to point out that scripting languages  
(Javascript is one of them) are not worth the work, when there is  
Java. Being relatively ok with both, I think yes tough.

* First, they are quick to develop in. Remember that sometime ago,  
Python was described as a language you could teach yourself in one  
day. It became slightly deeper recently, but the ease of learning and  
of use are not compromised.
Learning Java is a different thing. For my experience, it is  
fantastically thrilling, but also much more involving. It is a  
compiled language, and the prototyping and debugging processes take  
much longer and are much subtile than in a scripting language.
There are plenty of differences that make Java and scripting languages  
unique and non-overlapping.

It is then not surprising to meet in biology labs grad-students or  
even undergrads that are pure biologists (and the amount of time it  
takes is enormous and leaves little place to anything else), and  
completely fluent in one of these scripting languages. For instance,  
because of bioinformatics courses, students got to learn Ruby or  
Python or more. Having them in ImageJ is like saying "Hey you are  
familiar with that, just kick in and start developing in ImageJ".

* Second, they do not cost that much to develop or maintain. Ask  
Albert (Cordona) and the Fijiers how they implemented scripting  
languages in Fiji. Once the first was done, the others were easy. You  
can see them as optional plugins for instance.
Macro language does not have to feel threatened by scripting languages.

What is more involving probably is having plugins and classes that  
have public methods well thought for access by these languages or  
other plugins. But if this issue arise also for developing in Java.  
Note that this is a serious issue.

* Third, they look like they are *meant to write macros in*. Just as  
Python is often used as a glue to make C binaries act together, a  
scripting language can be used to build macros that automate tasks.  
Much more like the macro language, but with the extras they offer:
- getting the return values of plugin's methods when they are more  
than one number
- support for arrays
- convoluted loops,
- while, try/catch
- low level APIs to deal with files, searching....
- other external APIs e.g. for graphing, stats....
All of these are freebies as soon as these scripting languages are  
plugged into ImageJ.

Cheers to you all
jyt




--
Jean-Yves Tinevez, PhD
postdoc in PFID - Imagopole
Institut Pasteur
25-28 rue du Docteur Roux
75015 Paris, France
tel: +33 1 40 61 31 77