The EROS
and KeyKOS
operating systems were designed with a number of principles in mind.
This article
in IEEE Software describes many of those principles. Another one is:
Design object interfaces for programs, not humans.
The design of EROS/KeyKOS encourages developers to structure applications
as a set of interacting components or objects. This structuring is facilitated
when the interfaces that objects present are program-friendly rather than
human-friendly. Some examples:
interface element
|
human-friendly form
|
program-friendly form
|
number
|
decimal text string
|
binary integer
|
file
|
open dialog window
|
capability
|
option selection
|
command-line options
|
struct
|
This principle could also be stated:
Separate functionality from human interface.
This principle seems obvious when you consider that it is easier to write
a program to take a program-friendly interface and translate it into a human-friendly
interface, than vice-versa, because the translator is a program not a human.
This design principle came naturally to the EROS/KeyKOS designers because
we are programmers, not humans. Just kidding! But this principle allowed
us to build considerable functionality quickly. In KeyKOS, and in EROS to
date, there is rich functionality but precious little human interface, so
we were not tempted to think of the human interface first.
Why is this principle so rarely observed in desktop software today? Perhaps
one reason is that economic models have not yet emerged to allow an application
to be easily composed of components from disparate origins. In other words,
how do you make sure you have all the pieces and have paid appropriate license
fees to their owners? In KeyKOS we did not get around to worrying much about
this. In EROS we encourage free software.
This page was last updated on 28 January 2003.
Copyright (c) 2003 Charles R. Landau