Embedding VMs

Paul Prescod papresco@calum.csclub.uwaterloo.ca
Mon, 28 Apr 1997 21:53:45 -0400


Kelly Murray wrote:
> 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.  

No, that's where the enormous amount of effort spent on the JVM comes
in. The JVM encapsulates all of that crap in standardized objects. Of
course Java standardization isn't perfect, but Lisp users won't be any
more susceptible to bugs in an implementation than anyone else.

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

Sure the desktop OS becomes irrelevant. But it is the JVM that threatens
to make the Desktop OS irrelevant, not HTML. Try writing a word
processor, or even a half decent order entry app in HTML!
 
> 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.

Not true at all! There are Java APIs for database I/O, file I/O and (I
believe) object persistence. There are also APIs for mobile code. The
JVM is growing into a full application platform. Sun wants it to be the
Win32 of the next decade. If they win, I would rather Lisp was there
FIRST rather than playing catch-up.

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

I think that you have a very warped view of what the JVM is being used
for. Java is being used for video games. The JVM is being used for
wordprocessors. The JVM is being used for huge mission-critical IS
applications. The JVM is being used for server side processing. In
short, the JVM is being used for all of the sorts of applications that
we would like Lisp to be used for.
 
> 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.

The web browser is irrelevant. HTML is not powerful enough for deploying
really useful apps. People will use the JVM on the client side. The JVM
is what is important. Why shouldn't they be using LISP instead of Java?

Most Unix servers I am familiar with host a wide variety of
applications. HTTP, FTP, SMTP, etc. I don't know many Unix sysadmins
that would trust a whole new operating system with brand-new servers for
those protocols in order to support some nice vertical app someone
wrote. Rather, they will say: if it compiles and runs on Unix we'll
deploy it. If not, we won't. NOBODY except the people in this mailing
list are looking for a new operating system at the file and kernel
level. What they might buy is a more productive environment for
developing and deploying applications on the platforms that they do
support.
 
> 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.

Harumph. We haven't had any luck selling anyone on the productivity of
"Lisp systems" for the last 40 years. How is another incompatible
operating system going to convince anyone? It will play right into their
hands: "I always knew that Lisp could never be taught how to get along
with other languages and programs -- LispOS proves it." Any language
that requires its own operating system to gain prominence is doomed.
Getting people (and organizations) to change operating systems is a
hundred times harder than getting them to try a new language on an
established OS.

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

That will never happen. Perl is already deployed. It works with people's
established operating systems. It works with their established apps. It
is a GOOD CITIZEN.

I can't believe that as a *product of* the Tcl sucks thread we are back
to figuring out how to isolate Lisp from the rest of the world, rather
than figuring out how it can be integrated so that it can take over the
world a little at a time. We've finally got a development platform where
GC is built in, where objects are tagged, and where Algol-family
languages are subject to the same runtime checks as Lisp-family
languages. In short, we've finally got a development platform that isn't
optimized for C. I think we are squandering a big opportunity if we
ignore the market momentum and implement our own incompatible OS.

I can respect those who say: "I want my Lisp Machine back" and are
willing to throw out commerical viability in order to get it. I have a
friend who still does a lot of programming for the Adam computer,
including writing new operating systems and drivers for it. I respect
that. He has fun. But he doesn't think that the Adam is going to take
over the world. Neither will LispOS. If you write a new OS, do it for
the fun of it, not because you expect commercial (or even popular)
success.

 Paul Prescod