Embedding VMs
Kelly Murray
kem@Franz.COM
Mon, 28 Apr 1997 16:21:42 -0700
> What I want from "LispOS" or "LispEnv" (or whatever) is to be able to
> develop applications in Lisp, in a nice Lisp-smart development
> environment, have access to powerful, plentiful libraries that deal in
> objects and lists rather than strings and pointers and then deploy my
> apps on Windows, Unix and the Mac. Why write an OS from scratch?
Ahh, you've almost got it, except for that "deploy on X,Y,Z" part.
That just increased your workload by perhaps a factor of 10,
because to run on X,Y,Z requires using/interfacing/supporting whatever non-object
system/format/library/interface/thingy which is a part of those
systems. Having the development environment disengaged from X,Y,Z
only helps for the 10% part.
The promise of eliminating those platform specific things has already
been achieved! and not through any VM, it's been achieved by having
the Web broswer be the "user" platform.
That is why Netscape stock was run up to a zillion dollars a share,
because people saw that the desktop OS could become irrelevent,
and with it, Microsoft's monopoly.
JAVA/JVM's only value is to support client-side processing,
but just being able to execute instructions (computation) isn't very useful.
It is the I/O that is important, both with the user, and with other
programs, and the JVM says zero about I/O last time I read the spec.
Compute-intensive graphics on web browsers (java bouncing heads) WAS impressive
until animated gifs were "invented" which did the same thing an order
of magnitude simpler than writing a JAVA program,
and so now even THAT computation can be done on the server.
Now, don't get me wrong. It would not be particularly difficult to
define some lisp extension language that compiled into JVM code
or who-evers-VM to execute code on the client, and I can see doing
that down the road. However, it will likely once again raise all the
same non-lisp interfacing issues. But I hope they'll be more
tractable with better protocols than the kind of low-level bits
that must be dealt with for specific OSs. Let eveyone else bicker
over all this stuff. We'll just use it if it turns out to be
really useful.
The reason I believe my idea of a LispOS can work is that we don't have to
"deploy" the application, it is already deployed once it is working,
because it only depends on the customer having a web-browser.
Again, I fully understand this is a narrow focus, in which it
excludes deployment on existing OS. I'm not suggesting
Lisp should be abandoned as a language/system for doing this kind
of applications. Franz at least, is aggressively pursuing making Lisp
more and more viable for doing this.
This is the "Lisp is a good citizen" model.
It hasn't been all that successful so far for the reasons many have mentioned,
but I'd never suggest we give up on it.
I'm saying we should ALSO take a chance and try to make a truly
dramatic difference by believing in the productivity we know exists
with a Lisp-only system.
What I'm trying to do isn't going to be everything to everyone.
But I believe "server-side processing with a web-browser interface"
covers a large part of the existing market for software development
today (certainly for newly written software)
and will continue to expand, it's limitations being mostly from
the lack of people capable to do the work.
If Lisp does this better than anything else, it will be a huge win.
My perspective is that it would be a huge success if everyone says
"Yeah, but Lisp is only good for web programming"
If it achieves this level of success, then we can start to argue
about it being able to do other things too, like robot control,
data filtering, etc (though certainly I'm not saying someone
can't do that stuff sooner rather than later as well)
Let the others bicker over the VM/X/Y standards, while we just
overwhelm them with productivity.
Now it is very true that 100 C/JAVA/?? monkeys can probably do
what 1 Lisp monkey can do, so to have more than a local effect,
we need 10 Lisp monkeys for every 100 of the other kind.
That is why I've "gone public" with my ideas and plans,
because I believe for this idea to work its going to take a lot of
support by Lisp developers.
There are a lot of important details to discuss,
but first I think some coming together on these broader goals
and strategies is needed before we can proceed.
-kelly murray