Embedding VMs

Paul Prescod papresco@calum.csclub.uwaterloo.ca
Mon, 28 Apr 1997 22:28:32 -0400


Marc Wachowitz wrote:
> > I think that the technical reason for using the JVM is that there are
> > millions of JVMs deployed and thousands more every day.
> 
> I'm surprised. Do you seriously expect to have everyone of the big guys (Sun,
> Microsoft etc.) implement the extensions which you'd like for Lisp? Otherwise,
> you can simply forget counting these as platforms supporting your desired
> kind of system, as it won't run very fast. People will soon expect something
> with similar speed as with excellent JIT compilers from Java, since that will
> be what they'll have for a comparison; then, failing there would merely add
> another piece to the old "Lisp is slow" myth. Most people won't even listen
> to your excuses why a standard JVM isn't so efficient for Lisp, and even less
> will understand your explanations. I'd like to avoid that.
> 
> -- Marc Wachowitz <mw@ipx2.rz.uni-mannheim.de>


First, will Sun, Microsoft, etc. accept our extensions? I don't know.
Microsoft and IBM both have a big vested interest in blowing the JVM
open to support their older (and newer) "standard languages". Many of
the same features that will help SmallTalk will help Lisp, so you have a
large ally in IBM. You probably also have a large ally in ANSI and ISO,
who will both want any new VMs to support their other languages. Even
Sun has a functional language in its stable.

Second, failing that, am I risking adding to the Lisp is slow myth? I
don't think so. JVM's are just software. If Lisp is slow in Microsoft's
JVM but fast in GNU's, then there is proof positive that the problem is
in the VM and not in the language or even the compiler. Furthermore,
people will always have the *option* of deploying a faster Lisp-friendly
VM. If you absolutely need your app to run on machine FOO you deploy as
bytecodes. If you absolutely need it to run QUICKLY on FOO then you must
deploy your bytecodes and optimized VM. But at least you have a choice.
With LispOS, I have no choice: deply LispOS or don't run this app.

Given the choice of the myth "Lisp is slow" or the reality "Lisp doesn't
interoperate well", I would rather we turn the latter into a myth. Perl,
Tcl, VB and Java have proven that people don't give two farts about
execution speed. They only care about integration: Perl and Tcl are
seamlessly integrated into Unix. VB into Windows, and Java originally
into browsers but increasingly into all modern operating systems.

I guess we have different goals. I would love to have a
Lisp-from-the-ground-up operating system, but if I can't cheaply deploy
the apps I write there on Windows and Unix with at least the ease of
other languages then it is just a toy to me.

 Paul Prescod