I, Dirk Gerrits, 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 first seriously tried Scheme in mid 2003, when I spotted a link to the Structure and Interpretation of Computer Programming videos
on comp.lang.python. Right before my feeble C++/Python eyes, Hal
Abelson and Gerry Sussman performed nothing short of black magic:
defining program evaluation models, creating data out of thin air,
writing interpreters and compilers in their own source language, and
designing a handful of domain specific programming languages. I became
addicted to Lisp virtually overnight.
What led you to try Lisp? I have always been interested in computer game development, and I
taught myself everything the gurus said I needed to know: C++, linear
algebra, rigid body dynamics, and so forth.
At some point the verbosity of C++ was beginning to dawn on me, but
surely all these gurus couldn't be wrong? There was this one guy who
posted something about Lisp on one of the game development forums I
visited, and I checked it out despite the warnings of the gurus.
Within a week I came back screaming to C++. And the gurus forgave me
my misstep and my sacrilegious complaints were even taken care off:
C++ template metaprogramming and preprocessor metaprogramming had been
discovered. My faith in the gurus was restored, and life was good
again, for now I could let the compiler write the code I didn't want
to write.
But at some point I just felt that it took far too much of my (quite
limited) brain capacity to do all these cool things. The greater gurus
of the C++ standard committee eased the pain a little by creating
defacto standard libraries to simplify template metaprogramming and
preprocessor metaprogramming, but I felt that even this incredible
feat was not enough.
Instead of turning to the gurus, I decided to explore the world on my
own. I found Python and for 6 months I had a lot of fun with it. It
was easy to learn, powerful, and it interfaced very well with C++. At
some point I learned that it was even possible to write fairly decent
games in pure Python. But somehow I still had the nagging feeling
that something was still missing.
When I read about the SICP videos on comp.lang.python and started
watching them, I knew that my quest was over, and I said farewell to
both C++, Python, and even the game development scene. I still keep
tabs on what's happening in those communities, but I have never been
tempted to return.
What other languages have you been using most? Apart from Common Lisp, C++ is the only language I've used
extensively. Here's a somewhat more complete listing of
languages I have used for more than 15 minutes, in roughly chronological
order: MS-DOS batch, QBasic, SuperLogo voor Kinderen, QuakeC, C++,
Python, Borland Delphi, Python, Smalltalk, Scheme,
Haskell, Prolog, Common Lisp, Erlang, Java,
Ruby, Forth, Oz. (The italic ones I had to use for university
assignments.)
How far have you gotten in your study of Lisp? I studied R5RS Scheme, some implementation specific extensions, and a
lot of SRFIs. The one thing I could never get was how to make
advanced use of syntax-rules or syntax-case. At some point I decided
to give Common Lisp a try and after reading On Lisp I have never
turned back. My knowledge of the Common Lisp HyperSpec is now fairly decent,
but I'm only just beginning to scratch the surface of understanding
the full implications of that knowledge.
What do you think of Lisp so far?
Lisp turned my life around. Before Lisp, I thought I could program,
and that I wanted to hack C++ code for 60 to 80 hours a week in a
cubicle at a big game development studio. Lisp showed me that I
didn't have a clue what programming was. For the first time, my
thoughts weren't being restricted to a strict regime, and I had no
idea what to do with all this freedom.
I went to see what others had done with this freedom, and I came
across the most remarkable things, including ANSI Common Lisp, the
most impressive piece of engineering I've ever seen. Even if macros,
CLOS, the reader, the printer, symbols, proper arithmetic, LOOP, and
condition restarts didn't convince me of it, they also hate Lisp at my university, which means it must be
good. ;)
Switch Date 2003 | Seek and Ye Shall Find |
RtL Language Curiosity | RtL Word of Mouth | RtL SICP |
RtL comp-lang-python? | RtL 3D Community