〈Lisp Celebrities and Computing History from Worse Is Better〉
http://xahlee.org/comp/lisp_celebrities_worse_is_better.html
--------------------------------------
Lisp Celebrities and Computing History from Worse Is Better
Xah Lee, 2011-07-24
I just discovered the identies of 2 semi-fictional character in lisp
lore.
There's a infamous article, known as Worse is Better. Very popular in
the 1990s, and still so among lisp circles. The article is:
The Rise of “Worse is Better” (1991) By Richard P Gabriel. @
dreamsongs.com
In the article, there's this passage:
Two famous people, one from MIT and another from Berkeley (but
working on Unix) once met to discuss operating system issues. The
person from MIT was knowledgeable about ITS (the MIT AI Lab operating
system) and had been reading the Unix sources. He was interested in
how Unix solved the PC loser-ing problem. The PC loser-ing problem
occurs when a user program invokes a system routine to perform a
lengthy operation that might have significant state, such as IO
buffers. If an interrupt occurs during the operation, the state of the
user program must be saved. Because the invocation of the system
routine is usually a single instruction, the PC of the user program
does not adequately capture the state of the process. The system
routine must either back out or press forward. The right thing is to
back out and restore the user program PC to the instruction that
invoked the system routine so that resumption of the user program
after the interrupt, for example, re-enters the system routine. It is
called PC loser-ing because the PC is being coerced into loser mode,
where loser is the affectionate name for user at MIT.
The MIT guy did not see any code that handled this case and asked
the New Jersey guy how the problem was handled. The New Jersey guy
said that the Unix folks were aware of the problem, but the solution
was for the system routine to always finish, but sometimes an error
code would be returned that signaled that the system routine had
failed to complete its action. A correct user program, then, had to
check the error code to determine whether to simply try the system
routine again. The MIT guy did not like this solution because it was
not the right thing.
The New Jersey guy said that the Unix solution was right because
the design philosophy of Unix was simplicity and that the right thing
was too complex. Besides, programmers could easily insert this extra
test and loop. The MIT guy pointed out that the implementation was
simple but the interface to the functionality was complex. The New
Jersey guy said that the right tradeoff has been selected in Unix --
namely, implementation simplicity was more important than interface
simplicity.
I discovered, that the MIT guy is Daniel Weinreb, and the New Jersey
guy is Bill Joy.
I discovered this from Daniel's blog. The “Worse is Better” idea and
the future of Lisp (2009-06-07) By Daniel Weinreb. @ Source
danweinreb.org.
The Worse Is Better is a characterization of software success. It is a
seminal article, and in my opinion one of the best essay on the topic.
See also: The Nature of the Unix Philosophy.
When you look at computing history, many well-known figures had
various connections. Daniel and Gabriel are both from the lisp circle.
There are many blogs i've written in the past involving these
programing celebrities from my diggings of computing history,
especially involving lisp, emacs, unix. Following is a summary.
• I do a lot provocative writings. Around 2000, one time Richard P
Gabriel made some posts to comp.lang.lisp, and i criticized one of his
post about software engineering. He politely asked what's my opinion.
See: What and Why of Math. (this is the period when i was reading
comp.lang.lisp mostly for Erik Naggum's posts. See: Death of a Troll —
My Memory of Erik Naggum ◇ Why do I Rant In comp.lang.lisp? )
• My review of Richard Gabriel's 1996 book. It's quite scathing. Book
Review: Patterns of Software.
• Sometimes in 2007, lisp cons cropped up again in comp.lang.lisp. I
usually attack it to no ends. Daniel kindly asked what's my objection
to lisp's cons. Here's my reply among other meandering rants on lisp's
cons: Lisp's List Problem. See also: Programing Language: The Glory of
Lisp's cons.
• Bill Joy, is a founder of Sun Microsystems, and is the author of vi.
(See: Emergency vi (vi tutorial)) In 2000, he wrote a popular essay
titled “Why the future doesn't need us”. I wrote a blog about it:
Futuristic Calamity.
For how vi's keys began, in particular the H J K L keys for cursor
movement, see: Keyboard Hardware's Influence on Keyboard Shortcut
Design.
In GNU Emacs Manual, it began thus:
Emacs is the extensible, customizable, self-documenting real-time
display editor. This is the Sixteenth edition of the GNU Emacs Manual,
updated for Emacs version 23.3.
Wonder why it calls itself “real-time display editor”? Why “real-
time”? Why “display”? And how vi's “modal” operation came to be? See
bottom of: GNU Emacs and Xemacs Schism, by Ben Wing.
• Both Daniel and Gabriel are emacs users, of course, and it is a
major cause of RSI. Daniel has mentioned how emacs's keys began, to a
article i posted in a newsgroup post. Search for “daniel” in: Why
Emacs's Keyboard Shortcuts Are Painful.
• In discussing how emacs keybinding came to be, Daniel mentioned Guy
Steele (most famous for being the co-inventor of Scheme Lisp.). See:
Guy Steele on Parallel Programing: Get rid of cons!.
• Jamie W Zawinski (JWZ) is hired by Gabriel to work in his company
Lucid Inc, and one of the product is a IDE based on emacs, which
eventually became XEmacs when the company disbanded. It was JWZ who's
responsible for spreading the article Worse Is Better. (Since the
beginning of the web (~1994), the most popular website that hosted the
“Worse Is Better” article is JWZ's website. Only till ~2007 that
Gabriel started to have a website and hosted his own article.).
Most of today's programers might have heard of Jamie, if you've heard
one of them at all. He's the star back in Netscape days (1990s). He's
one of the more provocative types and writes non-stop. There are
plenty articles in mainstream media written about him. Richard
Stallman, blames Jamie as the one who cause the emacs vs xemacs
schism. Both Jamie and Stallman suffered severe RSI due to emacs.
Celebrity Programers with RSI (Repetitive Strain Injury)
Internet History, Netscape, Dot Com, Code Rush
GNU Emacs and Xemacs Schism, by Ben Wing
Xah
> might be of interest.
Nope, I don't giva a fuck about regurgitation of useless junk.
C
--
Geavanceerde politieke correctheid is niet te onderscheiden van sarcasme
To win a catfight one does not fight like a girl but HAS A BABY Glock
Have some fun playing with http://www.spammesenseless.nl/mytinypussy.png
De onbeledigbare betaalt nimmer voor de steen
regurgitation is actually useful. First of all, reddit, hacker news,
slashdot, and sites like that do it all the time. That's the essence
of their business.
But more importantly, education, especially of history subjects, is in
some sense pure regurgination. That's how younger generations learn.
if you are a old lisper, then perhaps it is old news to you. But
there are a lot 20 smoethings fresh blood of programers today learning
clojure, emacs. In 1990s, they are under 10 years old. They wouldn't
know a shit about the the dot com days we lived thru, the Netscape
days, the Java spelling the end of Microsoft days. They probably never
heard of Richard Gabriel or Daniel Weinreb. They, perhaps like you or
me when we were young, are eager to learn, eager to dig info on hacker
news, like we digged on FAQs and Usenet. When i was young in the
1990s, it is thru digging Usenet lore, i leared a lot about functional
languages, how there's lisp that's is tied to AI, how Scheme is the
most beautiful, the SICP book, Richard Stallman and his GNU Manifesto,
etc. There really isn't a history book on these type of subjects, and
for most of human history, perhaps even today, that's how we learn
history, thru communication passed down from older generation, and
most of it probably not thru a organized text book titled History.
Make sense?
Xah
The newbies should just type c y and RET RET on comp.lang.lisp in
the *Group* buffer, and get 63730 historical messages in that newsgroups.
There's no need to repeat it, it's all stored already in the nntp servers.
--
__Pascal Bourguignon__ http://www.informatimago.com/
A bad day in () is better than a good day in {}.
I haven't read Gabriel's book; but I was drawn to your remarks. You
say Gabriel states
QUOTE
•Languages are accepted and evolve by a social process, not a
technical or technological one.
•Successful languages must have modest or minimal computer resource
requirements.
•Successful languages must have simple performance model. (I think
means computational model)
•Successful languages must not require users have “mathematical
sophistication”.
UNQUOTE
And in criticism you write
QUOTE
By the second criterion, for example, C is good because it requires
little resource, while Lisp is bad because it requires large resource
(relatively). By criterion 3, it means that the mathematical model the
language is based must be simple. For example, C is the simplest
because it is close to assembly, while Prolog, Lisp, or Java have
complex performance models. By criterion 4, for example, Lisp is very
bad because it requires some mathematical sophistication (e.g. lambda
functions, recursions, and so on.). C is good because it's as simple
as manipulating beads on an abacus.
UNQUOTE
I think perhaps you are conflating 'successful' and 'good' here. It
looks as if Richard is talking about the former and your remarks are
directed to the latter.
One thing missing from his list is corporate backing which is very
important. Prolog really attained visibility when the Japanese Fifth
Generation Initiative made it the flagship and put big money behind
it. Put a big enough engine in something and even a brick will fly.
Though, sometimes, as with PL/1, not very far.
Mark
"Mark Tarver" kirjoitti
viestissä:dde98629-fbfe-4e22...@k15g2000yqd.googlegroups.com...
Mark
OFF TOPIC: it is my understanding that PL/I has flown, to a certain extent.
I know the language to a certain extent, and I don't dislike it. It is
somewhat of a fashion thing to criticize the PL/I. Like wearing miniskirts
simply because everyone else does. (The quintessential example of a
fashion-type phenomenon.)
The original version of MULTICS (the predecessor of UNIX (TM) , the
precedessor of Linux) was written in PL/I. (Yes, I'm as old as that.......)
kind regards, andy
PS. and one more note: Xah Lee wrote very well about the history of
LISP/AI/functional programming, to my opinion.
Made my day! :D
and thanks for Mark Tarver for comment. Didn't have time to put
thoughts back here... some other time.
Xah