Two complementary views of the system.

RE01 Rice Brian T. EM2 BRice@vinson.navy.mil
Sun, 27 Dec 1998 14:15:05 +0300


Wow!  I can't disagree with anything here.  :)
Naturally, I'd like to shamelessly plug my Arrow system, and add some
comments, if you don't mind.  ;)

> 4. There are multiple views on the same system or parts of the system. 
> The system automatically translates between views for the user's
> convenience.  It keeps track of what structures are equivalent in
> different views, so if the user changes something in one view, the
> corresponding change can be made in the other views.  Views include things
> like user interface (graphical and textual), as well as paradigms of
> objects, such as functional, procedural, and declarative. 
> 
Maybe the user would also want 'static'-style views where each incremental
addition would be shown as built 'on top of' the viewed system, so that the
user can compare.  This would just be a feature of the development tools, of
course, since the system would be able to encapsulate reversibility of
information-update actions, and so it could reconstruct previous states if
it kept track of changes.  You also have the potentially non-intuitive
effect of having all the tools that you are using change inadvertently due
to some user-tinkering.  I'm just trying to illustrate the fact that the
understandability of this system may be one of our highest standards /
goals.

> 5. It is a goal to include rudimentary natural language support from the
> beginning.
> 
The interface that you're talking about doesn't exist yet, and probably
needs a system like ours to become reality before someone makes a far less
efficient version for traditional systems.

> More extensive natural language support requires an enormous lexicon of
> the words in the
> human language, and will be developed later with an online distributed
> database. 
> 
I'm inclined to think that we could achieve an information density that
would allow that database to be a lot smaller than you think.  Of course,
we're not ready to build that yet, but we should get there in the
development process.  We should also consider the possibility that
(eventually) the system may diverge for many different groups, while still
remaining Tunes.  This of course smacks of the theory of natural selection.
We could also attract the attention of some linguists to help out.

> 6. The system is integrated.  This means every application is part of the
> system.  Also, applications are developed at a much finer grain than in
> traditional systems.  Any functionality, once added, is available
> everywhere in the system.  Users will be able to combine different
> functionality to create custom environments.  [this section needs to be
> developed]
> 
Incremental development suggests that combination of functionality would be
transparent to the user.  I guess that the direction for elaboration would
be in differentiating between various types of 'combinations' of
functionality.

> 7. infinite customizability, automation, ...
> 
I couldn't agree more.  Maybe you should add on something about factoring
out code by the user or something, since we seem to be headed towards an
aspect-orientation.  This suggests that we provide tools for doing this.

> Developer's view.
> 
> 1. ...When the very high level language is not enough, developers write
> documentation and attach it to their specifications.  The documentation is
> meant to stay with the specification as long as it lasts. 
> 
But with incremental development, won't documentation be changed as well?
Would we have to develop a Linux-style log system of changes?  Since the
incremental development can be performed in 'many dimensions', so to speak,
how would the documentation be kept consistent?  Someone could always
re-interpret the meaning of the specification, no matter how high-level,
into some previously unused context.  Maybe if we could achieve some sort of
'totality' in knowledge-level reflection, but that seems far too lofty a
goal.  I'm not exactly sure that even the Arrow language could handle it.

> 2. interactive development ...
> 3. hyper-programming, programming adding inherently to the deduction
> system ...
> 
Cool!  I hope that the Arrow system turns out to fulfill those expectations.
That's certainly what I'm planning on.