[unios] Priorities

Tril dem@tunes.org
Thu, 24 Dec 1998 19:58:59 -0800 (PST)


From: Tril <dem@tunes.org>

Pat's most recent list was:

1) Flexible
2) Stable/Reliable
3) Secure
4) Fast
5) User Friendly

Anders wrote:
> Performance is the biggest hassle. I guess some effort has to be put
> into this.

I think 4 and 5 should be switched.  The user (and programmer) is more
important than speed of the system.  If the program is not what you want,
or is not easy to understand, or is hard to maintain, then only the
original programmer will be in a position to appreciate the program being
fast.

Also, you may want to consider ease of use for programmers in addition to
users.  I don't know how you view the distinction in UniOS, but in TUNES
we strive to obliterate any difference.

Pieter wrote:
> What about 'Stable' on 1 ??
Pat replied:
> I agree that stability is very important, but I don't know
> how we would focus on stability in the initial design.

I agree with Pieter.  The system should NOT be able to disobey the user
and programmer.  That is, it needs to conform to the specifications for
behavior laid out in the objects created, shared, and controlled by users.
That means no C-like inability to check array boundaries (for example). 
You CAN focus on stability in the initial design: use strong type
checking, throughout the system.  This just means that operations are not
allowed to operate on values that don't make sense.  I am currently
developing a strong, integrated type system for TUNES, because I believe
it is the center of the system.  There will be no kernel, just this type
system.  All objects will take part in the type system (or they won't
exist). 

In TUNES we say stability and reliability are just by-products of security
(strong typechecking).  So when we say security we mean all three.

I expect someone will say, "what if the user wants to turn off
typechecking?"  Well, they can, just like a sysadmin can type "rm -r /".
It's equally as foolish.  But if the system didn't allow it, it would be
dumb.

So, my proposed revision of the priority list is:
1. Security
2. Flexibility
3. Easy to Use/Program
4. Fast

I have clarified my reasons for ordering 1-2 and 3-4.  As for 2-3, power
(extensibility, expressibility) is more important than any easy way to use
the power.  That is, you shouldn't limit the system to make it easier to
use.  That is the mistake made by Microsoft and Apple: Too inflexible.  On
the other hand I am aware of the mistake of Unix, which is too hard to
use.  But Unix didn't even have "User Friendly" on its priority list at
all, so we shouldn't be too hard on it.  That's all I have to say about
the priorities for now.

David Manifold <dem@tunes.org>
This message is placed in the public domain.


------------------------------------------------------------------------
To unsubscribe from this mailing list, or to change your subscription
to digest, go to the ONElist web site, at http://www.onelist.com and
select the User Center link from the menu bar on the left.
------------------------------------------------------------------------
UniOS Group
http://members.xoom.com/unios