[evla-sw-discuss] Implementation languages for the observing layer
Bill Sahr
bsahr at cv3.cv.nrao.edu
Wed Nov 13 16:06:50 EST 2002
I would narrow Barry's list for scripting-language/
implementation-language combinations for the observing
layer to the following:
>
> Python/C++ via CORBA
> This is the route chosen for ALMA. It has large advantages in that
> CORBA handles a lot of the differences between how things are handled
> in the two languages, and pretty flexibly lets you transmit data
> from the script interpreter to the underlying code.
>
> XML/C++
> Rather tidy, in that an observation descriptor would suddenly
> appear full-blown as a structure. But it is less than clear to me
> how to handle differences between antennas (eg to designate a
> reference antenna for holography, and the like), or how to handle
> subarraying. This can probably be resolved, but it would take quite
> a bit of thought to be sure.
>
> Jython/Java
> This has the major advantage that the integration seems pretty tight
> (one can just import Java Classes), without having to go through the
> IDL mucking about necessary with Python/C++ via CORBA. Seems very
> attractive on the surface, but I haven't looked very deeply.
>
> XML/Java
> Same comments as XML/C++. Both included here in hopes of inciting a
> religous melee over the question of whether Java or C++ is more likely
> to be around in the far future.
and add, as pointed out by Ramon Creager
<favorite scripting language>/C++ via SOAP
<favorite scripting language>/Java via Soap
As my <favorite scripting language>, I nominate Python which
gives:
Python/C++ via SOAP
Python/Java via SOAP
I haven't given the matter much thought but the combination
of Jython with Java via SOAP may not make much sense since the
integration of Jython with Java is already very tight.
Additionally, I would tend to eliminate CORBA based solutions.
I find CORBA to be an excessively heavyweight solution, and I
suspect that IDL programming is something of a "tarbaby", i.e.,
once introduced, more and more of the software must use IDL,
with the eventual result that it permeates the entire system.
I also tend to favor Java solutions over C++. For me, the issue
is productivity. There is good support in the literature for
the assertion that programmers are much more productive in Java
than in C++. When I look at the amount of software that must be
written and compare it to available staff, higher productivity
becomes a prime consideration.
I agree with the elimination of glish based solutions at least
w.r.t. the interface between the observation scheduling software
(to be developed by e2e) and the monitor and control system.
We may be forced to a glish/C++ combination for issues involving
the archive and the image pipeline by the need to draw upon
AIPS++ routines in those two areas. However, I would like to
keep the use of glish & C++ to an absolute minimum.
Finally, if SOAP is used, then the XML based solutions become
somewhat superfluous.
So, an even shorter list would be:
Jython/Java
Python/Java via SOAP
Jython/Java via SOAP if this combination makes sense
with the possible addition of glish/C++ in the area of
the archive and the image pipeline.
Barry's concerns re handling antenna differences and subarraying
for the XML cominations probably apply to the use of SOAP.
Bill Sahr
More information about the evla-sw-discuss
mailing list