Our Manifesto (Please Read)

Martin Cracauer cracauer@wavehh.hanse.de
Wed, 7 May 97 15:06:20 +0200

I think you have to be very careful in putting such a manifesto on the
WWW. Your first try was so offline from my opinions that I would have
to take action against it in whatever form.

Please be careful to represent people's opinions carefully and do not
name things people didn't agree on.

And please leave out Lisp advocacy, there's no point in doing so. This
is a description *what* we are trying to do.

We should tell why moving things to Lisp is a good thing for the Lisp
programmer. Why Lisp is better than language <x> or OS <y> is not
important for this manifesto. I don't even agree with much of your
advocacy points and I don't want them to be shown as an opinion
supported by me.

I think we have real agreement on enough things to make a manifesto
just out of these and nothing more. If not, no manifesto, please.

Anyway, here are my comments.

cosc19z5@bayou.uh.edu writes:
> Our Goal
>         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

Arg. Please don't promise anything we can't hold.

I would prefer to say 

"To develop an operating system with basic OS services, desktop,
development environment and produtivity application written in Lisp,
much like the Lisp machines did and unlike a Lisp system running as a
normal process on a standard OS, under the control of an alien OS
kernel and non-interated graphical user interface.

People vary in their opinion whether to base this on a free Unix clone
kernel, a microkernel like Flux' OSkit or directly on hardware. It is
likely to start on top of an existing kernel and some or all people
might decide to replace this base part by part with a pure Lisp
implementation. Most parts of LispOS could be shared by LispOS
implementation of different levels anyway.

Implementations based on Unix kernels will be capable of running
native applications of the OS.

The X Window System protocol and where applicable Xlib (not the higher
level parts of X11 ) are likely to be the base of the graphical user
interface, so that LispOS application can be displayed on standard X11
servers. LispOS implementations capable of running a X11 server on the
local console won't rely on a remote X11 server. [I never seen anyone
against this, please speak up in case]

> 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.

No Lisp advocacy please.

Just a reasoning why we think it is important to move things under
Lisp control.

I.e. I want a shell that passes objects, not ascii streams. I want a
windows manager and an editor that lives in the same world as all
other components of my desktop so that I have control over all
components from every component without some artificial protocol
between different processes.

>         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.

My take:

" This platform will be a prove of our beleif that Lisp is a superiour
language when it comes to implement all levels of software a computer
runs (OS, desktop, development environment and applications).

It will show that a really tight integration of system components is a
strict requirement when approaching most powerful computer software
while no need to sacrifice user-friendlyness will arise. And that Lisp
is the language that is best suited to rise this goal.


> 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
>         abstraction.

This sounds like the second effort is just waiting for the first one
to finish a VM and then use it.

For me, this is not true. I will not use a bytecode implementation.

I think the point of the second effort is to start with existing OS
kernels and Lisp implementations (bon't name these in the manifesto)
and move more and more parts of the whole system into Lisp's
control. For me, the desktop, the command shell and the OS
configuration is the most important.

People vary in how deep they want to go to the hardware. We have
people who would like to hack the memory system directly on hardware
in Lisp and I highly respect these.

But there's no reason why the higher level things I care for can't
stay compatible with whatever the hardware interface is.

In fact, I think the VM group has different enough goals from this
group that the manifesto should just point to this group as a related

>         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.

Don't name the implementations to use, we are not that sure. In the
case of the Unix kernel, we don't even have to choose as long as we
operate on the surface. 

I.e., what I am approaching requires Unix kernel modifications only
for performance reasons and maybe for Lisp threading. This work can
easily be done for Linux *and* FreeBSD. The OSkit is likely to be a
good base, too.

The decision will be made by whoever steps forward and starts.

> Our Status
>         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

Please leave out the following Lisp advocacy.

I would also leave out the concrete hacking projects out of the
manifesto and point to a different page.

The manifesto should be a slow moving target, while the list of
projects is (hopefully :-) not.

So I vote to leave out all of the following.

>         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
>         tomorrow.  
>         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
>         lispos-request@euclid.skiles.gatech.edu -- Everything Else
> 		Have "subscribe e-mail" (where e-mail is your e-mail)
> 			in the subject.
> 	<?> Web sites
> -- 
> Cya,
> Ahmed
> 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
Martin Cracauer <cracauer@wavehh.hanse.de>
Fax +49 40 522 85 36