[net.ai] Dandelion vs Symbolics

steve@siemens.UUCP (09/17/86)

I have received enough misinformation about Dandelions and Symbolics
machines (by net and mail) that I feel forced to reply.  This is not,
however, the last word I have to say.  I like to keep the net in suspense,
acting like I'm saving the BIG REVELATION for later.

Key: S= Symbolics, X = Xerox Dandelions
     - point against X, for S
     = point for X, against S
     * misinformation against X, fact in favor (my opinion of course)
     ? point not classifiable in previous categories

A writer who prefers to remain anonymous pointed out:
- If your system is bigger than 32 Mb, it can't be done on a Xerox machine.
- It takes a great deal of effort to get good numerical performance on X.
- X. editor is slow on big functions & lists.  My opinion is that it is
  bad programming style to have such large functions.  However, sometimes
  the application dictates and so this is a point.
* "Garbage collection is much more sophisticated on Symbolics" To my
  knowledge this is absolutely false.  S. talks about their garbage
  collection more, but X's is better.  Discuss this more later if you want.
* Preference for Zmacs with magic key sequences to load or compile portions
  of a file, over Dandelion.  People who never learn how to use the X system
  right have this opinion.  more later.
* "Symbolics system extra tools better integrated"  Again, to my knowledge
  this is false.  I know people who say no two tools of S. work together
  without modification.  I have had virtually no trouble with diverse X.
  tools working together.
? "S. has more tools and functions available e.g. matrix pkg."  On the other
  hand I have heard S. described as a "kitchen sink" system full of many
  slightly different versions of the same thing.

There is a general belief that the reason the X system is around 5 - 6 Mb
vs. S. around 24 is that S. includes more tools & packages.
+ When you load in most of the biggest of the tools & packages to the X
  system you still are down around 6 - 7 Mb!
+ If your network is set up reasonably, then it is trivial to load whatever
  packages you want.  It is very nice NOT to have junk cluttering up your
  system that you don't want.
? "The difference in size reflects how much space you have for CONSes, etc."
  Huh?  I have 20Mb available, yet I find myself actually using less than
  7Mb.  My world is 7Mb.  If I CONS a list 3 Mb long, my world will be 10Mb.

Royt@gatech had some "interesting" observations:
+ Performance per dollar:  you can get at least 5 X machines for the cost
  of a single S machine.  AT LEAST.  Both types prefer to be on networks
  with fileservers etc., which adds overhead to both.
? X abysmally slow for baby GPS etc.  My guess is that whoever ported/wrote
  the software didn't know how to get performance out of the X machines.
  It's not too hard, but it's not always obvious either.
= Xerox is getting on the Commonlisp bandwagon only a little late.  But how
  "common" is Commonlisp when window packages are machine dependent?
= For every quirk you find in Interlisp (".. Lord, that lisp seems weird to
  me!  I mean, comments that return values??"), I can find one in Commonlisp.
  (Atoms whose print names are 1.2 for example.)
+ X has nice windows, less complicated than S.  No one i know has ever crashed
  a X machine by messing with the windows.  Opposite for S. machine.
+ structure editor on X machine, none on S.
* "Dandelions *lack* decent file manipulation..."  Wrong, comment later.
? he has bad experience with the old IP/TCP package.  Me too, but the new
  one works great.  (The X NS protocols actually are quite good but the rest
  of the world doesn't speak them :-().
? "..Typically, what I do and what other people do .. is enter a function in
  the lisp window, which makes it very difficult ..."  Didn't you realise
  you must be doing something wrong?  That's not how you enter functions!
  You give other examples of how you and your cohorts don't know how to
  use the Xerox system right.  You're too stuck on the old C & Fortran
  kinds of editing and saving stuff.
* He goes on about reliability of X being the pits.  Every person I have
  known who learned to use the X machine caused it to crash in various
  ways, but by the time (s)he had enough experience to be able to explain
  what he did to someone else, the machine no longer crashed.  I guess
  the X machines have a "novice detector".  My understanding is that
  S has its problems too.

One guy had bad experience with KEE, which was developed on X.  I do not
think his experience is representative.  What he did say was that it kept
popping up windows he didn't want; X systems make much more use of
sophisticated window and graphic oriented tools and interfaces than S,
but it doesn't often pop up useless windows in general.

Dave@milano thinks S offers reliable hardware, reliable software, and
good service that X doesn't.  WRONG!  At his site, they were obviously
doing something sytematically wrong with their machines, and they didn't
get a good repairman.  I can give you horror stories about Symbolics, too,
but I have some pretty reliable points:
+ At a site I know they have around 20 S.  They have sophisticated users
  and they do their own board swapping.  Still they have 10% downtime.
+ At my site we have very roughly 20 machine-years with X.  Total downtime
  less than 2 machine weeks.
+ S. has such hardware problems that a) they have a "lemon" program where
  you can return your machine for a new one, b) their service contracts
  are OUTRAGEOUSLY EXPENSIVE!

These lisp machines are very complex systems.  If you don't have someone
teach you, who already knows the right ways to use the machine, then it
will take you more than 4 months to learn how to use it to the best
advantage.  Hell, I've been using a Dandelion almost constantly for close
to three years and there are still subsystems that I only know superficially,
and which I know I could make better use of!  If the same isn't true of
Symbolics it can only be because the environment is far less rich.  It is
not difficult to learn these subsystems; the problem is there's just SO
MUCH to learn.  Interlisp documentation was just re-done and it's 4.5 inches
thick!  (Used to be only 2.25)

Finally, I will expound a little on why Xerox is better than Symbolics.
The Xerox file system and edit/debug cycle is far superior to an old-
fashioned standard system like Symbolics which has a character-oriented
editor like Zmacs.  The hard part for many people to learn the Xerox file
system, is that first they have to forget what they know about editors and
files.  A lot of people are religious about their editors, so this step
can be nearly impossible.  Secondly, the documentation until the new version
was suitable primarily for people who already knew what was going on.  That
hurt a lot.  (It took me maybe 1.5 years before I really got control of the
file package, but I was trying to learn Lisp in the first place, and
everything else at the same time.)  Now it's much much faster to learn.

The old notion of files and editors is like assembly language.  Zmacs with
magic key sequences to compile regions etc. is like a modern, good assembler
with powerful macros and data structures and so forth.  Xerox's file system
is like Fortran/Pascal/C.  Ask the modern assembly programmer what he sees
in Fortranetc. and he'll say "nothing".  It'll be hard for him to  learn.
He's used to the finer grain of control over the machine that assembly gives
him and he doesn't understand how to take advantage of the higher level
features of the Fortranetc. language.  Before you flame at me too much,
remember I am analogizing to a modern, powerful assembler not the trash
you used 5 years ago on your TRS-80.  The xerox file package treats a file
as a database of function definitions, variable values, etc.  and gives you
plenty of power to deal with them as databases.  This note is long enough
and I don't know what else to say so I'll drop this topic somewhat unfinished
(but I will NOT give lessons on how to use the Xrox file package).

A final final note:  the guy down the hall from me has used S. for some
years and now has to learn X.  He isn't complaining too much.  I hope he'll
post his own remarks soon, but I've got to relate one story.  I wanted to
show him something, and of course when I went to run it it didn't work
right.  As I spent a minute or two eradicating the bug, he was impressed
by the use of display-oriented tools on the Dandelion.  He said, "Symbolics
can't even come close."

Steven J. Clark, Siemens RTL
{ihnp4!princeton or topaz}!siemens!steve

darrelj@sdcrdcf.UUCP (Darrel VanBuer) (09/19/86)

A slight echo on the Interlisp file package (partly response to earlier note
on problems using MAKEFILE, and losing a bunch of user-entered properties.

Rule 1.  Users never call MAKEFILE (in 9 years of Interlisp hacking, I've
probably called it half a dozen times).

So how do you make files?  I mainly use two functions:
CLEANUP()     or CLEANUP(file1 file2 ...)   Former does all files containing
	modifications, latter only named files.  The first thing CLEANUP does
	is call UPDATEFILES, which is also called by:
FILES?()	Reports the files which need action to have up to date
	source, compiled and hardcopies, also calls UPDATEFILES, which will
	engage you in a dialog asking you the location of every "new" object.

Most of the ways to define or modify objects are "noticed" by the file
package (e.g. the structure editor [DF, EF, DV ...], SETQ, PUTPROP, etc which
YOU type at top level).  When an object is noticed as modified, either the
file(s) containing it are marked as needing a remake, or it gets noted as
something to ask you about later.  You can write functions which play the
game by calling MARKASCHANGED as appropriate.

Two global variables interact with details of the process:
RECOMPILEDEFAULT  usually EXPRS or CHANGES.  I prefer the former, but CHANGES
	has been the default in Interlisp-D because EXPRS didn't work before 
	Intermezzo.
CLEANUPOPTIONS	My setting is usually (RC STF LIST) which means as part of
cleanup, recompile, with compiler flags STF (F means forget source from in
core, filepkg will automagically retrieve it if you edit, etc), and make a
new hardcopy LISTing.

For real fun with filepkg and integration with other tools, try
MASTERSCOPE(ANALYZE ALL ON file1)
MASTERSCOPE(EDIT WHERE ANY CALLS FOO)
CLEANUP()

-- 
Darrel J. Van Buer, PhD
System Development Corp.
2525 Colorado Ave
Santa Monica, CA 90406
(213)820-4111 x5449
...{allegra,burdvax,cbosgd,hplabs,ihnp4,orstcs,sdcsvax,ucla-cs,akgua}
                                                            !sdcrdcf!darrelj
VANBUER@USC-ECL.ARPA