
Guy Steele
353
users of the language to easily add their own equally uniform, semiconcise,
first-class syntactic extensions. Yet a lot of folks resist the s-expression
syntax. The smug Lisp weenie view of the world is, “Some people just don’t
get it; if they did they would see the brilliance of the solution.” Are you a
smug enough Lisp weenie to think that if people really understood Lisp they
would not be put off by the parentheses?
Steele: No. I don’t think I’ve got the standing to be smug. If anything,
because I have learned so many languages I think I understand better than a
lot of people the fact that different languages can offer different things. And
there are good reasons to make choices among them rather than to hold up
one language and say, “This is the winner.”
There are certain kinds of projects that I would not want to tackle with
anything other than Lisp because I’m interested in the set of tools it
provides me. For instance, ready-made input/output—if I’m willing to
conform to Lisp’s syntax, then I’ve already got readers and printers built
that are adequate for some kinds of jobs. This in turn allows you to do
some kinds of rapid prototyping. On the other hand, if it’s important that I
customize the I/O to an existing specific format, then Lisp might not be such
a good tool. Or else I might have to build some kind of transducer in some
language, Lisp or otherwise, to get it over to the Lisp world.
Seibel: What languages have you used seriously? It must be a long list for
you.
Steele: I earned my first money programming in COBOL. I was still a high-
school student and subcontracted to someone who was doing a report-card
generator system for another school system, so there wasn’t any conflict of
interest there. I used Fortran, IBM 1130 assembly language, PDP-10 machine
language, APL. I guess I can’t claim to have used SNOBOL seriously.
Certainly C, C++, Bliss, the DECsystems implementation language that
came out of Carnegie Mellon. GNAL, which is based on Red, I’ve used quite
seriously.
Several different varieties of Lisp, including Common Lisp, Scheme, Maclisp.
The version of Lisp that Dick Gabriel and I built for the S-1, S-1 Lisp, which
was one of the four or five that merged to make Common Lisp. I developed
Connection Machine Lisp but I’m not sure I could be said to have done