From: Erik Naggum

Subject: Re: Franz ACL 4.3.2 for Windows compared to ACL 3.0.1

Date: 1997-6-9 10:08

Jim,

I'm cautiously excited about ACL 5.0, a definite case of mixed feelings.
on the positive side: I was seriously disappointed with ACL for Windows --
it was no better than a randomly chosen Windows application (i.e., it
crashed very often), and it was a lame implementation of Common Lisp.  so
I'm correspondingly positively excited that you're now offering an Allegro
Common Lisp for NT that deserves your trade name.  however, I'm not at all
thrilled with User Interfaces according to Bill Gates.  I found it much
harder to learn to use NT _efficiently_ than to learn to use GNU Emacs
efficiently.  (learning to use NT inefficiently is of course effortless --
it's main selling point.)  after about a month of working on an NT machine
with that 3.0.2 thingy under WinEmacs, I was still five times more
productive with ACL 4.3 under Emacs on my own machine.

| 2. We are working hard to get the PC GUI (Common Graphics and the
| Interface Builder) ported and to run well on it.  This is a very major
| task and will take us a while yet.  CLIM runs on it, but our major effort
| is going to port the PC GUI.

the main advantage of programming in Common Lisp for me is that I work so
much faster in the Emacs/ACL environment (with the HyperSpec) than in any
other programming environment I have tried.  (compared to CMUCL, I get
about 25% more work done.)  if Allegro Common Lisp should become one of
those grossly unproductive tools that Bill Gates has hoisted on the world,
I have to drop Allegro and go for something less intrusive, such as
returning to CMUCL, which is coming out in its 18th release.  if I have to
drop Allegro because of the cost of its inefficient new user interface,
it's hard for me make long-term plans that involve continued development
with Allegro CL.  in plain language: I need some serious reassurances that
I am not forced to suffer the kind of user interface paradigms into which
Microsoft has ensnared the whole world.

now, I type between 80 and 100 words per minute and I think almost
exclusively verbally, to the point where I don't even remember what images
and icons mean.  the movement of the mouse and clicks down a menu take so
much time and detract so much from my concentration that I lose 20 to 25
words of effective typing before I regain speed.  filling in forms under
Windows easily takes ten times longer than writing into the listener.  I
don't remember pathways through menus, either, so I frequently have to scan
through menus to find them.  however, I _do_ remember literally thousands
of keybindings in Emacs, and my active vocabulary is reportedly well above
200 000 words (Norwegian, English, Latin), yet menu navigation incurs
"cognitive load" while typing and reading don't.  for me, a menu-based user
interface is suitable only when (1) I don't know what I'm doing, and (2) I
don't intend to learn what I'm doing very well, either.  this is how I deal
with automated telling machines in the transit halls of relay airports in
countries where I have no intention of staying.  I don't want to be reduced
to this kind of illiteracy when writing complex software.  I want my brain
to be free to think about the solution to the problems I'm trying to solve,
_not_ to worry about menus, mouse clicks, window management nonsense, etc,
etc.  IMSNHO, the User Interface According to Bill Gates is the world's
most intrusive user interface, bar none.  I'm deeply sorry to see how it
wastes the time of perfectly good employees and the money of employers.

| 3. We are working hard to add some Windows specific components such as
| OLE capability.

this is very welcome, of course.

| 4. We are redoing the GUI somewhat to be more like, for example, the
| Visual Basic interface (note we aren't giving up on the advantages of
| Lisp, though!).  That way we believe we will be able to attract new users
| into the Lisp world more easily.

all fine and dandy for those new users, but please do not to make this the
only way to work with ACL 5.0, or you will scare off _many_ old users.  I
don't want to work with Bill Gates' idea of an operating system or of user
interaction if I can at all help it.  (although it applies more to an
international airline, NT is "Such A Bad Experience, Never Again").  I
started programming (for real) on a DECSYSTEM-10 in 1982.  incredulously, I
find that I was able to complete a programming task on a keypunch and a 300
baud terminal much faster than today's expert programmers get the same task
done under Windows with Microsoft Developer Studio and Visual C++.  (I
know, 'cuz I spent two weeks writing a table-driven, adaptive data entry
program in MACRO-10 assembly in 1982.  I rewrote it in C for Unix in 1989,
which took me another couple weeks, but last year, a programmer at a
company that sells programming services for Windows at an insanely high
hourly rate, spent _five_ weeks reimplementing it for Windows 95, and he
says he'll need two more weeks to port it to Windows NT.  now, the real
downer is that users spend nine times more time entering data into the
user-friendly Windows application than they did with either of my versions,
partly because this grossly overpaid Windows programmer never got the
adaptive part to work right.)

now, I'm not unique in not wanting to suffer Windows.  several programmers
I know have dropped to at most half, usually less than one third, their
Unix productivity even after learning Windows well.  Windows is the only
environment I know where my brain is more occupied with how to do the job
than doing the job: the constant manual labor involved in moving the mouse,
forcing the precise positioning that only a mouse requires, and the total
lack of programmability at the level it is _needed_ drives me up the wall.

it could be that there is some sort of "generation gap" involved here where
"my generation" both think and work differently from the "new generation"
and that the Lisp community can't attract people to the efficient ways
without giving the new generation their familiar and inefficient ways first
and let them learn of the possible improvements.  (I'll note in passing
that the Lisp Machines had a graphical user interface from the start, and
their users were reportedly very efficient on them, but it took a lot of
training to get there.  today's user interfaces are only good at letting
employers pick employees randomly off the street and making them useful
without training (because they don't get appreciably better with training).
I don't think it makes sense to flirt with serious programmers on these
premises.  I don't think programmers will choose Lisp for the anything near
the reason they choose Visual Basic or Visual C++, either.  I think Lisp is
chosen by programmers who have made an informed decision about their tools,
not programmers who take whatever is hyped in some trade rag or handed to
them by some ignorant manager who is more concerned with the cost of
replacing his employees than with the quality of their work.)

| ACL 4.3.2 + the PC GUI (redone as in 4.) is the basis for our next major
| release (ACL 5.0) and will replace both ACL Win 3.0 and ACL 4.3.

I'd like to buy the "PC GUI" seperately, just as I may buy Allegro Composer
separately for the Unix version.  it is of _vital_ importance to me that
the "PC GUI" remains an unexercised option and that I can continue to use
ACL 5.0 under Emacs, without menus, as I use it now.  (there is still a
strong need to make the Emacs Lisp interface better.)

however, there are clearly tasks for which a graphic user interface would
be beneficial.  the inspector is my favorite example.  the profiler could
also do with a zooming function.  I'm convinced that graphic user
interfaces are only useful when the user is not in any way providing input
into a program, only selecting from some of its output, or doing very
simple tasks, like operating a fax machine or an ATM or a CD-ROM player.

| On the other hand, if you have a use for a high performance Windows NT
| Lisp with Multi-threading and with CLIM only GUI (or a direct interface
| into the WinAPI), then ACL 4.3.2 for NT is just right for you and we will
| talk about making available to you (contact <franz.com). at sales>  Examples
| include people who might want to build a Webserver or who have an
| existing UNIX/CLIM implementation.  But we haven't been actively
| promoting because we have been pushing so hard towards the next major
| release (ACL 5.0).

_this_ is the good news, Jim.  I just turned down a client because he said
I had to use NT and my sales rep with you had told me the NT version was
too far into the future for me to base any short-term decisions on it.  my
past experience with Allegro for Windows was so bad that I'm not going to
use it again.  of course, when I had found how I could use the Unix version
efficiently, and the Windows version offered nothing of the sort, but _did_
"offer" to do things in its own peculiar ways instead of the standard ways,
it was more than just disappointment.  downgrading to the NT cost me four
weeks and 2800 lines of extra or rewritten code.

#\Erik