Wednesday, January 25, 2006
So when does 2 not equal 2?
If someone was to drop a bomb on this building, it would wipe out 50 percent of the Lisp community. That would probably be a good thing. It would allow Lisp to start over.
That wasn't exactly what John said, but it was pretty close. Again, the main thing here was somebody with impeccable Lisp credentials saying that Lisp was far from perfect and in fact needed to do better than Common Lisp. The fact that Patrick, Henry, and John all argued essentially the same thing was a wake-up call, I think.
Now, I have this love-hate relationship with Lisp. I love the
idea of Lisp, and it is a cool language, but I hate the
implementations of it (it doesn't play well with other languages), lack of
syntax (which expresses itself in Lisp as a metric buttload of
parenthesises), the nasty low level details one has to keep in mind (really!
In Common
Lisp, 2 (this particular instance of the number) is not necessarily
equal to 2 (this other instance of the number)—I kid you not!) and the
rather archaic way it still operates (CAR
and CDR
are remnents from the very first implementation where one took the
“contents of the address register” for the current element in a list, and
“contents of the decrement register” for the rest of the list—even
though you now have FIRST
and
REST
LAST
(oh, it's called LAST
even though it returns the rest of the list)REST
(apparently, I had it right the first time,
and LAST
is used for something else in Lisp—sigh)
nobody ever uses those).
Oh, and to get any real speed out of Lisp you have to forego using lists (which is what Lisp stands for—“LISt Processing”) and use more specific data structures (never mind the fact that Lisp is still taught as if it only has lists).
The “John” mentioned above is John McCarthy, inventor of Lisp, which is one of the two oldest programming langauges (the other being FORTRAN), and if he, of all people, doesn't have much positive to say about Lisp, then what chance does it have of gaining wide spread acceptance in the industry (Greenspun's Tenth Rule notwithstanding)?