I,
Duane Rettig, do solemnly offer these my responses to
The Road to Lisp Survey:
When did you first try Lisp seriously, and which Lisp family member was it?
I never really "tried" Lisp; I always learned languages by implementing them. I learned Franz Lisp in 1984 by porting it to the Amdahl 470/580 running its version of Unix, the UTS operating system.
What led you to try Lisp?
Having started my career in 1973 in the hardware testing field in a disk drive company, I had to learn all about many aspects of the making of these machines, including how they are designed and manufactured, as well as how they break.
When I went to work for Amdahl in 1981, I started as a manager in one of the Test Engineering departments, but found I liked doing better than telling, so I became a staff engineer in the software group. We were testing Multi-Chip Carriers (e.g. supersized Printed Circuit boards with 20 to 40 layers of wire tracing) and a fellow programmer and I developed a GFI (guided fault isolation) algorithm for these boards. It looked like AI, but it was a relatively simple algorithm based on knowledge of how circuitry can break and what the effects are. The chip pins were hard to access, but possible.
When we started looking into newer generations of electronics, we all (design and test engineers alike) realized that we were going to have no physical access to chip pins, and GFI was going to be impossible, unless we started getting into AI, and access the electronics virtually and/or through reasoning techniques. So we started an AI club, where we started learning about AI and techniques, including Lisp. Not much came of that, because AI had not done much (perhaps a hint at the AI winter to come?), but during one of those meetings, someone came with a BSD tape and said "There is a copy of Franz Lisp on this tape; does anybody want to try porting it to UTS?". I took the bait, because I had been bored with the lectures that had been given by those who supposedly knew lisp, and wondered how anybody could get anything done when they had to always think in terms of cars and cdrs; surely the language had to be better and higher level than that..
My port of the interpreter went fairly smoothly; there were only a few routines written in assembler (I knew IBM operating systems, but had to learn IBM/370 assembler in order to finish that part; fortunately, I was in the perfect place to grab IBM 360/370 resources...) The rest of it was written in C. It took me only a couple of weeks to get a prompt on the Franz Lisp on the 370. The next year I spent first porting the compiler, and then removing the extreme stack-based (i.e. push/pop instructions) compiler back end and replacing it with compile-time offset calculations, as was preferred by the almost RISC-like nature of the 370 architecture.
All this while I was working full-and-a-half time (as usual) for Amdahl, and looking to find ways to use this new port of the then fastest lisp in the world to our advantage in the next generation. I also thought it would be a good idea for Amdahl to sell this lisp; we could make some money at it. But Amdahl wasn't interested (we were a hardware company, after all) and pointed me to a new startup called Franz Inc. I talked with Fritz Kunze
and Kevin Layer (two of its founders, still there today) and started consulting with them right away, after drafting a three-way memorandum of understanding between Franz, Amdahl, and myself. In 1987, after a year and a half of consulting, I joined Franz Inc. full time.
What other languages have you been using most?
C was always king, though I got my start in High School on Basic (the real thing, with line numbers and all - not what they now pass off as Basic) and learned Fortran, MIX, and others in college. In industry, I started becoming interested in Forth when the August, 1978 Byte magazine came out (I implemented a Forth interpreter on one of the Minicomputers I was working with which served as our test stations). I also saw the Byte magazine that featured Lisp, but saw very little purpose for lambda, and saw even less purpose for all those irritating, stupid parentheses, so I just kept it in the back of my mind for later, when I would eventually realize what Lisp was good for.
How far have you gotten in your study of Lisp?
The more I study and implement lisp, the more I realize how little I know. My gut tells me that Lisp can track any software engineering developments that occur, but keeping up with those developments is always hard, since everything changes so fast.
What do you think of Lisp so far?
Well, I've bet my career on it, and it hasn't let me down for 20 years!
Linked from:
Switch Date 1980s |
RtL Work