I've just read the winter 1991 edition of the Lucid newsletter
Lucid Moments. While the previous editions I've seen have
contained little bits of news about Lisp applications, this edition
is quite different: it contains two big interviews with Kadarauch
(Lucid's CEO) and Gabriel, plus an announcement of Lucid's purchase of a C++
compiler company. The interviews are clearly defensive, probably
because Lucid is afraid of what people will do when they perceive Lucid
is moving from Lisp to C++. What really bugs me about the interviews
are unjustified blasts at their competitors and the distortion of truth
(a polite term for lies). I don't know about Kadarauch but I just
can't believe that Gabriel spoke some of the words attributed to him,
I have to believe that it was some misguided person in their publicity
department. What makes me really angry is that Gabriel's name is associated
with these statements and that people might believe them. I'd like
to have this published in a Letters to the Editor column of Lucid Moments but
there is little chance of that happening, so hopefully through this forum
I'll reach some of the people who read the Lucid publication:
A few of the the points:
* Regarding CLOS implementations, Gabriel says:
"Symbolics is the only other U.S. Lisp company that's done their
own version of CLOS. Franz hasn't, Ibuki hasn't, and most of the
European companies haven't either."
Yes, it is true that Franz's CLOS is based on and includes
parts of PCL. We're quite proud of our version. Franz's goal was not
to have a system with *its own* version of CLOS written from scratch,
rather it was to develop a system with the *best* version of CLOS. In
other words Franz doesn't subscribe to the Not Invented Here
philosophy. PCL was designed by some very bright
people and refined over many years and the designers left a number
of places where individual implementations could speed up the code.
We're so happy with our CLOS that all stream
code (much of it speed-critical) in our 4.0 release is written
in CLOS (following the Gray stream proposal). Lucid has yet to do this.
* Regarding object oriented programming, Gabriel says:
"We're really on the forefront. Lots of companies stood by saying
that object-oriented programming was a good thing to do, but
they weren't willing to jump in and help get it going.".
He's forgetting that Franz was the first stock hardware Common Lisp with
a serious version of Flavors. This satisfied people
during the long period of time while CLOS was debated and designed
and continues to satisify customers with real applications.
As for CLOS, there is definitely a too-many-cooks problems in
language design. Who's to say that without Lucid's help, CLOS
wouldn't be better? I would have preferred to see one or two
people propose a definition for CLOS, instead of the committee
that eventually did it. Believe me, people in our marketing
department did tell me over the years "you should get yourself
on that committee since it will be good for publicity to say
that you were involved". I told them that I was more concerned
that it get done correctly and that required a small
non-partisan group. But they were right about using this membership for
publicity purposes, as this quote from Gabriel attests:
"Anyway, there were seven people who defined the CLOS
system. Of those seven, two were originally from Lucid..."
* On programming environments, Gabriel says:
"Lucid is the only company using any of
the new technology [object-oriented programming]
in developing programming environments"
I'm not sure what Gabriel is referring to, but I think that
it is their C++ environment. What have they done for Lisp?
In any event Franz's programming environment Composer introduced
in early 1989 was written in CLOS (actually it was in PCL which was
a close as anyone was to CLOS at the time). And as I've mentioned
we've preceded Lucid in using CLOS in parts of our main
product (e.g. the stream code).
* Then there is a section on Lucid 'firsts'. Being first
isn't as important as being best so maybe I shouldn't be so
angry but the errors, however it is galling to see
history being rewritten.
Gabriel says:
garbage collection:
"We were the first ones to implement a non-intrusive
garbage collector in software"
"As far as I can tell, no other system has as effective
a memory management system as we do right now".
The fact is that Franz introduced it's generation based gc in
1987 and Lucid didn't introduce their's until late 1988. They are
based on the same idea but I don't know how to compare them
for 'effectiveness'. In our code non-intrusiveness is a
function of the size of 'newspace' since that determines the
maximum amount of copying that is done in the newest generation.
In my position I only hear bad things about Lucid's gc (from
disgruntled Lucid customers), so I'm in no position to make
a scientific comparison of the two systems and I'd like to
know on what basis Gabriel makes the statement
"no other system has as effective a ...".
stock hardware:
"We were the first ones to produce a stock hardware Lisp
that has performance that was competitive with special-purpose
hardware"
Wrong again, ever since the days of the 68010, Franz has always
been out before Lucid on each platform. The current example
is that the newest hot machine is the RS/6000 and Franz is
shipping a version and Lucid is not.
clos again:
"We were the first U.S company to have our own implementation of CLOS".
Ok you did do your own CLOS, but that alone isn't something to
be proud of (see above). Both companies are now shipping a
lisp with CLOS.
compiler:
"We were also the first to have a development compiler
that produces code that is, in many cases, comparable to
the production code speed of other Common Lisp compilers
but which is dramatically faster than anything else".
First of having two compilers, a development compiler and
a production compiler is bad for users (two different 'looks',
two different optimization behaviors)
and for Lucid's developers (porting and maintaining two compilers).
The reason that the development compiler effort was started was because
the original compiler was so slow, but for internal reasons Lucid couldn't
dump it and start from scratch. So the new compiler effort
was created under the project name "development compiler".
Isn't it about time to dump that production compiler now, no
one buys the "We have two compilers and our competitors only
have one so we're better" story.
Yes, you're first with two compilers, but maybe that's
because everyone else did it right the first time.
* local variables
"we were the first ones to allow people to debug their
code on stock hardware where all the local variable
names were available"
Wrong, Franz came out with this in our original
68010 port (which preceeded Lucid's).
* window systems
"And we were the first ones to produce a window system
for Lisp on stock hardware"
True, but would you do it again?
Franz has always realized that in order for Lisp to be
an effective tool on a Unix workstation, it has to fit into
the Unix environment. Thus we've worked on linking to standard
window system (initially sunview, now the X window system) and
standard editors (such as GNU emacs).
End of blast.
It's one thing to for Kadarauch to say random "We're the best"
things in his interview, after all he's the team leader and that's
the kind of thing a leader is supposed to say (whether it's true or not).
But people will look to a technical person for plain and honest facts
and frankly I'm very disappointed by what I've read in Gabriel's interview.
- John Foderaro
Senior Scientist
Franz Inc.
415 548 3600
Would it be possible to keep the "my lisp is better than your lisp"
wars off this newsgroup? Lucid Moments is after all part of their sales
literature, and most of us have figured out by this time how to read
such things. It's not like the thing was published in Lisp Pointers or
LASC. One could find similiar "distortions" in your posting, too, as
well as the Franz sales literature.
...arun
----------------------------------------------------------------------------
Arun Welch
Lisp Systems Programmer, Lab for AI Research, Ohio State University
·····@cis.ohio-state.edu