The LispOS Project: a position paper, part 1

Dwight Hughes
Mon, 26 May 1997 00:28:57 -0500

| From: Scott L. Burson <>
| I. General Comments
| First off, I would point out that the current state of uncertainty is
| natural.  There is the temptation to compare this project to Linux; but
| building Linux, although a very large implementation effort, was
| straightforward in the sense that the goal was well-defined: duplicate
| The kernel design and implementation strategies were well-known when
| started.  This meant that he could practically just sit down and start
| I don't mean to diminish his achievement; I'm just pointing out that we
| not in the same situation.  Oh, I suppose we could just try and duplicate
| LispM, but that doesn't strike even me, a die-hard LispM fanatic, as a
| goal.
| So I think we just need to accept that it may take some time for a
| to emerge on goals and strategy.  It certainly doesn't bother me that
| can't be pinned down in a month.  And even once we select a strategy,
| will be many details to attend to.  Better to invest some thought up
| than to get to the middle and discover it's not going to work the way we
| thought.

This certainly makes me feel better about where things are and what is
in the project. It *is* a hell of a task, and a most interesting one - one
deserves some patience and care in setting it up.

| II. Goals
| As I listen to this conversation, I hear a number of ideas about what
| want LispOS for.  Let me see if I can enumerate the major ones:
|  -- a highly flexible, mutable system, with as much source code in Lisp
|     possible so we can change practically anything we want to change
|  -- something lots of people will want to use
|  -- a basis for other work, i.e., something on which new kinds of
programs can
|     be written (this is my own desire; I don't know if anyone else here
|     it)
|  -- a testbed for various research ideas in language design, compilation,
|     etc. etc.

I see points 3 and 4 as corollaries of point one, but I suppose that need
necessarily be the case. (If we do the job right they should be.)

  [ various excellent commentary on what is necessary for "popular
acceptance" ]

For myself "popular" acceptance is not high on my list so long as we
attract a
strong group of users (fanatics?) who will support and advance the system
time goes along and add significant value to it. The needed "killer app"
may not
even be a germ of an idea yet. If the LispOS becomes what we desire, it
enable many things that were never considered as practical or reasonable
before -- from this will come who knows what. Java is not especially
in itself, but it possessed several characteristics that made it suitable
act as an enabler for technologies that were suddenly desirable. Perhaps
we will get lucky too.

A fundamental need of the LispOS is easy interoperability with just about
everything out there. That alone would make it valuable to many people.

| So perhaps the first question to ask is, Who is the intended audience for
| LispOS?  This deserves some discussion.  I see a few groups who might be
| served:
|  -- students who want to see another view of the computing world than the
|     C/Unix orthodoxy; possibly also, educators who want to expose their
|     students to such a view (I'll call these "academic users")
|  -- researchers in language and OS design and implementation who want to
|     try out their ideas, and to share ideas with others in a concrete
|     ("CS researchers")
|  -- professional programmers who want easier ways to build applications,
|     to build new kinds of applications
|  -- AI researchers, like myself, who could never quite build the systems
|     wanted to build on the available platforms
|  -- general users who want a system that functions more automatically and
|     intelligently than current designs

I would add users/companies who need higher levels of fundamental
and incremental reconfigurability in place without rebooting. The
"safety" of an OS based on tagged objects from the ground up could be
in all kinds of process control, semi-embedded systems, work-flow, and
else you need a system that *has* to run.

 [ more excellent exposition snipped ]

| And finally, general users.  I have thought a little about what value
| might provide an unsophisticated user.  This is just an idea, and it's a
| of a long shot, but it does strike me that today's computer systems are
| far too hard to use.  People need them to be self-administrating to a
| greater extent; to build a detailed model of the user and his/her goals
| preferences; and particularly, to provide much more intelligent handling
| errors of various kinds.  This is something a fully integrated system
| LispOS could do far more easily than a present-day OS.  Again, this
| more thought, but I wanted to toss it out there.

As a consultant who deals with various networks and needs and neophyte
there is definitely a need for better, far more adaptable and configurable
server OS. LispOS could make a great contribution here - being able to
adaptively use and reorient resources based on need and availability would
be awesome. Simply having a server OS smart enough to know "whoa, dude,
printer's toast, better reroute my queue to an equivalent one and tell the
user where to pick up their output" would save so many headaches for users
(and for me).

-- Dwight