It's time, again, for me to be grumpy and start waving my cane at those damn kids playing on my lawn. Some of you, ever solicitous of my mental health and well being have advised me not to care what the unenlightened think or publish but, alas, I can't help myself. This time it's Shane Panter over at Foundation Code who's raising my blood pressure.
Having read Paul Graham's Hackers & Painters, Panter takes issue with Graham's assertion that Lisp gave him and Robert Morris a strategic advantage with their startup Viaweb. Really, he says, it's just that Graham was a really smart guy and would have succeeded no matter what language he used. Furthermore, “way back then1” they didn't have modern languages like Java, Python, PHP, and Ruby so his only choices were C++, Perl, or Lisp. He couldn't really use C++ because it hadn't been standardized yet so that left only Perl and Lisp and since Graham2 and Morris3 were from MIT they naturally had a bias towards Lisp.
There's no doubt that Graham is a smart guy but the rest of Panter's assertions are nonsense. We know this because Paul Graham himself tells us. Putting aside the arrogance of telling the admittedly smart Graham that he was mistaken in his belief that Lisp provided a strategic advantage, let's just look at the languages available to Graham and Morris when they started Viaweb. Far from being unavailable or unsuitable, C++ (and Perl) were what all Viaweb's competitors were using. So they could have used C++ if they wanted. And, it turns out, they did use C and Perl for parts of the system so the choice of Lisp appears to be a well thought out strategy not simply all that was available. The idea that they would have used Java or PHP, if available, is snortworthy.
And why wouldn't you want to use Lisp, even today? Well, according to Panter,
- It's old technology.
- It has too many incompatible implementations.
- It has a crazy, hard to read syntax4.
I'm not sure what being old technology has to do with anything. Presumably Panter enjoys a beer now and then and beer making technology is even older than Lisp. As for having many implementations, why isn't this a good thing? Many of those implementations are targeted at niche areas such as embedded applications or those desiring to run on the JVM. And being Common Lisp, they aren't incompatible except in additional tools and extensions they support. Again, this provides programmers a choice within Common Lisp and should be viewed as a good thing.
And don't get me started on crazy, hard-to-read syntax. We Lispers don't find it the slightest bit crazy and we certainly don't find it hard to read. It's an—unintended, I'm sure—irony that Panter positions himself as a perfect example of Graham's famous Blub programmer with this statement.
I don't know Panter and his site has only two posts so it's difficult to judge his knowledge and expertise. As always, I'm inclined to give him the benefit of the doubt and his overall point—technology decisions shouldn't be based on religion—is one we all agree with. I do wish, though, he'd get his facts straight and not presume to tell Paul Graham that, no, he isn't correct in believing that Lisp gave him an advantage. After all, Graham has demonstrated just that many times. Panter's free to ignore Lisp in favor of “modern languages” but it would be nice if he'd refrain from telling those of us who prefer Lisp that we're merely deluded by our religious beliefs.
4 This assertion has been removed from the post (or perhaps I just imagined it).