It is difficult to find an exact date for LISP’s birthday. It wasn’t so much born in an instant as it was gradually dragged out of the primordial slime during the heady days of late 50s computer research. What is known is that John McCarthy, LISP’s “father”, published a report in October 1958 about his new programming language aimed at providing artificial intelligence capabilities on the IBM 704 mainframe computer. That report, one of a series, was the first one to use the name LISP.
OOPSLA, a major annual conference on object-oriented programming, has decided to celebrate LISP’s 50th birthday on 20 October 2008. Practically everyone at that event is likely to be smarter, geekier and possibly even more pedantic than me. So for now I’m going to go with that date and raise a glass to LISP and John McCarthy in one week’s time.
John Walker’s almost-accidental but still inspired decision to add LISP to AutoCAD was, in my opinion, the most significant feature addition in AutoCAD’s history. There were many other feature additions without which AutoCAD would be a joke (e.g. blocks, undo/redo, dimensioning, polylines) but they were always going to happen anyway.
Adding LISP wasn’t like that. It wasn’t inevitable. It was an excellent example of Walker thinking outside the box, and it was the one thing that raised AutoCAD significantly above its competitors (yes, it had serious competitors once) at a time when the PC CAD market was still up for grabs.
The genius of this move was that instead of attempting to fill AutoCAD’s many feature holes, Autodesk could provide the tools that would let the users do that for themselves. The language was an ideal fit for a number of reasons, and users in droves started hole-filling with a vengeance. Without that boost to AutoCAD’s open architecture, the PC CAD market would have been a very different place. Autodesk itself may not even have survived into the 1990s, and I could have been writing this blog about Versacad, Computervision, or some other competitor.
Today, despite an unfortunate history of long periods of neglect from Autodesk, LISP remains the language of choice for most of my AutoCAD-related programming needs. There are exceptions, but I’ll usually first see if a given job can be done in LISP. If it can’t be done easily and well in LISP, then I will consider using one of the other available languages. For the sort of work I usually do, that doesn’t happen very often.
Why? I’ll explain my reasoning in a later post.