thinking about virtual machines, etc.

Bill House
Sun, 27 Apr 1997 07:58:23 -0700

Some important points have been raised, and I'd like to address
a number of them.  

1. Standards. I have a bit of experience in this area, as
co-founder and project editor of the rather ill-fated ANSI X3J19
Xbase Language committee. While we ultimately failed to produce
a standard (largely due to the financial troubles of the largest
corporate backers), the fact is that myself and a few friends
managed to mobilize support on three continents. Based on what I
know about X3 and NIST, I think we could garner support for a
public UVM standard that supported the existing Lisp and Scheme
language standards, particularly if we subsumed the JVM (this
last point I think would be particulary appealing to the
standards community).

2. The Press. X3J19 got a considerable amount of press -- we
actually had one magazine that sent a reporter to each meeting,
plus staffers from other magazines who were on the committee.
The Press also provided us with a free CompuServe Forum and
libraries for document distribution. Much of this was arranged
by moi (I was Sysop of DBA's CIS Forum for 4 years). Despite our
defeat on X3J19, I still have some influence in the press -- I
write the Solutions Development column for Microsoft Certified
Professional Magazine, and even now I'm writing a technical
review of ObjectStore 5.0 and POET for Databased Internet
Advisor. My point is that, with the strong I*Net play that a
portable Lisp VM would have, I think can get us some press.

3. Why a VM? Well, there's huge commercial interest in remotable
VMs these days, but the JVM is braindead for Lisp and other
dynamically-typed languages. Also, the JVM does not include
native persistence, making a critical component of any JVM
solution largely implementation-specific and non-portable. If we
take the AgentBase VM as a model, we will include persistence
and a native service.  If we can squeeze it into (< VM_Size 2MB)
as we have, it's reasonable for the standard to require this
capability. Also, therein lies the mechanism for providing an
the hoped-for LispOS persistent object system, even on standard
OS platforms.

4. How to proceed?  I believe that Richard Coleman has it right
in suggesting a two-pronged attack. One group needs to
concentrate on a spec for the VM and a reference implementation
of said spec. Which VM we use for that basis would be an early
task for that group. The other group would proceed as Richard
suggested -- to create the OS services on which the LVM would
operate. The interface between LispOS and the LVM needs to be
very carefully designed, so that LispOS is a real screamer, yet
the LVM is portable to other OS platforms. 

5. How will we get people to use it? By utilizing the I*Net
marketing model -- we give LispOS and the LVM away over the
I*Net. The LVM can be ported to Win32 and integrated with the
ActiveX Scripting API. This would be promoted and available for
D/L on MS SiteBuilder Network. We can talk it up on UseNet, CIS,
etc. I can get us some press. People _will_ know about it. After
that, LispOS and thew LVM will have to stand on it's own merits
-- if it's really as useful as we all must believe, then users
will adopt it because it works and solves problems!

6. As get further along, I can start the ANSI/ISO ball rolling.
We can't take too long, but I think there's still time, as the
major Java vendors are still locked in a competitive death grip
with each other. We can do an end-run around these behemoths --
we'll garner support in the standards community, because we're a
grass-roots effort and because support for existing Lisp, Scheme
and CORBA standards can be built into our spec from Day One.

Anyway, that's my 2 cents.

Bill House
The views expressed are mine alone,
unless you agree with me.