I agree. The end-user effectivley prototypes their own version of
a reduction package by selecting run-time parameters and experimenting
with different modules. I would like to see this occupy more
importance during the development process
>What may serve the need is a distributed software environment in which
>component capabilities run as separate programs, perhaps on different
>coputer systems. The components are built using a large, shared class
>library that defines the data types used by all the components. This
>class library defines the gaming table; you have to ante up (by learning
>how to use the big class library) in order to be allowed to play.
>The components interact via the network. The operation of the components
>is controlled by another distributed component that does *not* need to be
>built from the large class library, but rather simply communicates
>instructions to the computational components. These would include
>data manipulation instructions like "Ask *that* component to send you
>its third image" as well as computational instructions like "Take the FFT
>of your second image".
I am interested in a model where every function invocation or dataset appears
to be a seperate CPU dedicated to that object. Thus a user/ scripting language / gui
could ask an object
What are you
The object would reply code, data (others ?)
For code objects, various queries would be possible, Some
would be mandatory ie
Copyright
Originator (possibly a PGP key)
Invocation
Replies would detail the datatypes using primitive standard
descriptors (ascii, unicode, byte, i4, ieee-r8, 2d, composite)
and their status (required, optional, defaults available,
session history etc). Composite datatypes would support domain
specific (eg querying a FITS object using the science domain
would reply "I am FITS" or "I am CDF" or whatever)
queries about their contents. Some of these queries would
normally be used to automatically populate some of
the other arguments (like image dimensions, units etc)
I strongly believe that providing the ability for an
external interface to `burrow' into an object (until it
reaches datatypes it can understand) is vital to avoid
limiting future potential. (eg Intelligent domain
specific search engines (a'la Yahoo) which can locate
both data and code as it becomes available).
>I have a small working version of such a thing now, and it looks
>really sweet.
I look forward to hearing more about it.
----- End Included Message -----