Re: jython interface

Maohai:

That is what the user group wanted from Herschel IA --
the Java developers can get all the fancy internal data model
they want, but the end users want something like this can work
in the interactive environment:

-> plot([1,2,5,6,2],title="foo bar")

Actually, you can do:

lineplot(field([1,2,5,6,2]),title="foo bar")

and get your plot (assuming you have imported 'graph'). It would be trivial to have lineplot() change the first parameter from a list/tuple to a field, though. By default, the x-axis would be labelled "Domain" and the y-axis "Values", because no explict names have been assigned to the values. This is, in fact, an indirect part of the VisAD Data model - the default names for the axes labels are the names of the "types" of data you assign to the variables. The real issue for me is that I think scientists should be using the VisAD Data model to represent their data, because of the rich meta data that goes along with it, and not just simple array of numbers. I think what you are implying is that the Python lists and tuples should somehow be seamlessly interchangable with VisAD Data objects. This is an interesting notion, since VisAD's model is sort of a superset of PyTuple (most VisAD Data objects are immutable) since they can contain not only numbers, but the associate metadata...as well as also containing other Data objects. The key, and the biggest stumbling block for most scientists, is that have to start think of their data in more formal terms of 'sampling domains' and 'ranges' (or the function between 'independent' and 'dependent' variables). Most seem quite comfortable with the notation: ((x,y)->value). To that end, most of the methods in subs and graph allow you to deal just with 'names' instead of having to even using the word "RealType'.

A Jython cosole has been prototyped for Herschel IA. It
has a history mechanism allowing assemble successful commands
into a script. The Jython interface is one of the areas
which makes me think Herschel IA should join force with VisAD.
There is so much parallel between them.

I recently changed Curtis' JPythonEditor/Frame to include a history (up- and down-arrows) in its immediate command mode, primarily because we found in Linux the standard 'readline' does not provide this within the Jython command line interpreter -- and _that_ is a real pain! As you may be aware, this question has come up several times in the Jython community, and you might consider making this available (if possible), since the idea of automatically pasting successful commands into the script is quite appealing.

Like I (and others) have mentioned, it is sometimes practical to interface VisAD Data objects to other graphics libraries...

Then for a long term project multiple external packages have
to be maintained.


Yes, that would be the downside - especially in something that is evolving. We do not, at this point, though have any projects here that are in need of more refined 2D graphics presentations; however, I'm always looking for opportunities here to do things like that. My history is in this type of work.

I am sure will get back to this. I writing wrapper classes to
simplify 2D plotting using VisAD. It is intended to help Java
developers but Jython users can benefit on the one-stop-shopping
type of plotting control. I feel it bears much resemblence to
part of the python.JpythonMemthods class but I haven't looked
closely. I am still learning the nuts and bolts of VisAD
and writing the wrapper class is a good way to learn.

I'll be very interested in what you come up with! Actually, I've been putting more stuff into subs.py and graph.py recently...primarily to allow developers and scientists to use these as examples they can more easily modify to meet their specific needs.

Thanks again for  your thoughts and suggestions...

tom