Our Manifesto (Please Read)
Tue, 6 May 1997 20:19:57 -0500 (CDT)
Ok, here is the first version of the manifesto. It's pretty crude and
probably full of grammatical/spelling errors, however what's important
is what it says (I can clean this up later). I wanted to get it out
now to see what everyone thought, and to get any comments.
What is in here is a direct result of information provided to me
specifically for the manifesto, and items which seemed to be generally
agreed upon. Thanks to Alaric B. Williams for providing me with
some of the info on what I could assume we agree upon so far.
If you want something changed or have comments, please post them
publicly on the mailing list. The reason being is that I will
only incorporate changes if they are presented publicly where others
can object/add their own comments.
If you post a request for a change, then I will wait for 2-3 days to
see if any objections are forthcoming. And then majority rules
(ie: if more people don't want the change than do want them, then
the change is out). If there are no objections or comments regarding
a proposed change, then I'll consider it as an implicit vote of
approval and add it in.
Also there are some parts of this document which specifically need
fixing. The first and most immediate is the name of our project.
I've seen "Silk" recommended, but I couldn't see any kind of
widespread agreement on the use of that name. Also what was the
mailing list address for subscriptions to the VM branch of the
Ok, without further ado here it is:
The LispOS Project Manifesto
To develop an operating system based on Lisp. An Operating
system that from the ground up supports Lisp development
and that is (mostly) written in Lisp. Support will mean
both powerful tools for the development of Lisp programs,
a Lisp interface, communication/functionality in terms of Lisp
objects (to be manipulated as any other Lisp object),
and efficient execution of Lisp programs. Furthermore
this operating system will be capable of running binaries
of other popular platforms such as WindowsNT/95
Why a Lisp Operating System?
The operating systems in existence today are woefully inadequate.
From Microsoft Windows, to Unix, these systems are both
inefficient to use for program development, and are oriented at
too low a level. With a Lisp operating system, not only will
there be an unbeatable development environment for Lisp programmers,
(an unbeatable development environment regardless of language),
but it will be a fully customizable, re-programmable, easy to
use high level system for the end user. This has already been
demonstrated by the Lisp Machines of old, like the Symbolics.
However, unlike the Symbolics, this system will be completely free.
It is our hope, that once this operating system achieves wide
distribution, people will not only see the inherent advantages
of a truly well designed operating system serving as a helper,
rather than a hinderance, but will also come to look upon Lisp
as a truly capable language, and relieve it of its unjust reputation
once and for all.
How we Intend to Achieve Our Goals
We will start small and work our way up. Currently there are
2 branches of work. One is on a Lisp Virtual Machine, for the
efficient execution of Lisp (and possibly other dynamic languages).
This virtual machine will use a portable byte code format, and
may be compiled from either Lisp or other languages (although
it will definitely be optimized for the former). This will be
initially implemented on UNIX as a demonstration of its feasibility.
The second branch works on the kernel/microkernel. Initially,
the amount of Lisp will be minimal in favor of using
pre-existing components/code, however the level of operation
will be at a high level -- that of objects. This will enable
programmers to be able to utilize system calls much more
effectively, since they will be at a higher level of
Initially, we will start our work using CMU-CL on Linux and
from then on, we will gradually re-write more and more of
the core system in Lisp rather than having it implemented
on top of another operating system. Furthermore, utilities
and programming tools will be developed and incorporated into
the distribution. The end result will be a fully functional
Lisp system. This will not happen overnight, but it will happen.
Currently we are still in the discussion phase. No code has
been written, although some "proof of concept" code may in
fact have been developed by individuals to help demonstrate
the feasibility of doing things a certain way.
Why You Should Help
Tragically, C/C++ remain the development languages of choice,
despite strong evidence of their woeful inadequacy for non-trivial
software projects. Studies have been conducted comparing
C/C++ with other languages (including Lisp) which have demonstrated
that using Lisp led to projects that were on schedule, on budget,
and on the whole more reliable than C/C++. However, despite the
obvious superiority of Lisp, it has not achieved the widespread
support that it deserves -- widespread support that could finally
eliminate the Software Crisis.
Even supposedly "modern" languages like Java are archaic and
primitive when compared with Lisp, which has been in use
for decades, and therefore is more mature and stable. Furthermore,
Lisp readily supports the functional programming paradigm, a
paradigm which many feel will be in widespread use by the next
century. Lisp is serving us today, and is more than ready for
Lisp development will not only make programming a much more enjoyable
task for programmers (imagine never having to chase a NULL pointer
again), but it will reduce costs for the end user, and advance
the state of the art. Now development will occur using Lisp
as the base, rather than an already outdated language like C/C++.
More powerful languages and paradigms will result, and as a result
of that -- more powerful programs.
It is in the best interests of both programmers and users to
help in this endevour. A LispOS will benefit all of us.
How You Can Help
If you have programming/software engineering expertise, then
you can help by developing code and discussing issues. If you
are a casual user, then you can help by giving the system a
try and giving us your feedback, not to mention spreading
the word to others.
Where to Contribute
There are 2 mailing lists and a web site with discussions relating
to this issue. To contribute, join either mailing list (depending
on your interests), and see what you can do!
Pertinent mailing lists:
<?> For the Virtual Machine
email@example.com -- Everything Else
Have "subscribe e-mail" (where e-mail is your e-mail)
in the subject.
<?> Web sites
Everywhere I go they all talk the same,
They don't even have to try to make me feel so lame
"Argyle" by the Bouncing Souls