Virtual Machines

Kelly Murray kem@Franz.COM
Mon, 28 Apr 1997 12:17:34 -0700

All this talk of a VM is pretty much useless for my goals,
which I restate: "to build a platform where Lisp programmers can be
successful in the marketplace".

Lisp already has a high-level VM (e.g (function arg1 arg2))
which is works perfectly well FOR LISP.  A "LispOS" is FOR LISP,
not for SmallTalk, Java, TCL, or any other language.

This is where all the power comes from: everything in the OUR world
is a lisp object -- all the nightmare and hassle and trouble and time
and pain and suffering making this model co-exist with the non-lisp,
non-object world will disappear under this LispOS.  

Others have described very well how and why this unified, integrated model
is so much better than massive compromise to interoperate with other
applications and systems in low-level ways,
which seems to take up about 90% of the time building real-world applications.
So it can be summed up in non-technical terms by
saying it allows a dramatic increase in productivity.
This productivity is the key to succeeding in the marketplace.

The only advantage of some kind of VM or byte-code is portability,
and that generally comes with a performance loss, often a dramatic one.
Again, hardware portability is not needed to be successful, running
on low-cost, widely available hardware is the only thing
important in the beginning.  x86 hardware is clearly the choice here.

If this LispOS thing succeeds, the OS can be ported to other hardware
directly, or run on top of other OS's.  UNIX got ported to about
everything, but only AFTER it was deemed worthy of the effort.
Linux itself was also ported to other hardware.
Why waste the effort dealing with this,
when we haven't even demonstrated we have something useful to begin with?
The thing is to not bind our OS too directly to the hardware.
This is another reason to build on top of another OS, a UNIX in
general, Linux in particular, since it will tend to avoid hardware
dependence. When significant hardware dependence is called for,
it is best made an isolated and well documented part of the system.

So I say drop this whole VM discussion.

-kelly murray  (speaking for myself, and I hope some of you too!)