Re: Scripting Languages

Paul Shannon (pshannon@NRAO.EDU)
Tue, 17 Oct 1995 20:03:15 +0100

James Coggins writes:
>
> A useful cautionary tale.
>
> While I have nothing against specialized scripting languages, it seems
> more parsimonious to define an appropriate C++ library and use the
> same language for scripting as for development. Then scripts can be
> invoked by other scripts in the same manner as servers. In fact, the
> difference between scripts and servers is all convention and not
> substance. (Whereas with a specialized scripting language scripts and
> servers are different species that cannot mix.)

In aips++ we use glish as our scripting language, and scripts *can* be
servers. When used that way, they appear from the outside to be no
different from C++ servers. In general, our approach is to prototype
code in glish, and then rewrite in C++ when efficiency becomes an
issue.

Glish was originally developed for the Superconducting Super Collider,
and is inspired by the statistical language 'S', developed at Bell
Labs (I believe) for exploratory data analysis.

We have been very pleased with glish so far, and we are actively
extending it to provide other features we need. Our main users
outside of aips++ are a few astronomers involved with the Green Bank
Telescope, and they are quite enthusiastic about glish, too. The
monitor and control software for the GBT also uses glish. Among other
things, glish offers whole-array operations, functions as first-class
objects, and distributed processing: glish can be described from many
perspectives, but one useful way is as a 'software bus' on which
events travel back and forth between cooperating clients. IMHO, glish
offers many of the same things as the wildly popular TCL, but with
many features required for astronomy, and missing from TCL: 'real'
numbers, complex numbers, multi-dimensional arrays, and distributed
processing.

- Paul Shannon
pshannon@nrao.edu
National Radio Astronomy Observatory
Charlottesville, Virginia