John McCarthy, the Father of LISP and AI has died at the age of 84.
Starting around AutoCAD 2.1, the ability to customize AutoCAD using AutoLISP was one of the things that made AutoCAD so powerful. At that time, LISP was the preeminent language in the field of Artificial Intelligence and the addition of LISP to AutoCAD really opened doors to customizing and automating workflows. All of a sudden, you weren't stuck with only what AutoCAD could do "out of the box."
When I started working with AutoCAD, I remember spending countless hours on CompuServe (my ID was 71521,450), on my 300-baud modem, exchanging AutoLISP routines with other AutoCAD users. Although I had previously done some programming in Pascal, I would say that AutoLISP helped solidify my love of programming and it was surprisingly powerful.
In the early 90s I wrote and sold a commercial AutoCAD layer manager called Layer Express. Initially it was all written in AutoLISP and DCL. Eventually I started incorporating ADS (and later ARX) applications as supporting modules (to get more speed and better file system access), but the main Layer Express app was still 5000 lines of AutoLISP. During those years, I did consulting and created lots of custom, discipline-specific, applications for large companies and much of it was written in AutoLISP.
When I joined Autodesk I worked on the Express Tools team and the vast majority of the tools we created were written in AutoLISP. The developers I worked with (Randy, Frank, Dominic) were magicians at making AutoLISP do amazing stuff. The amount of tools we created during the short life of that team would have been far less were it not for that language. Although many Express Tools commands have since been folded into AutoCAD as ObjectARX apps, we still ship almost 80 AutoLISP files for the remaining, original, Express Tools.
So, if you're ever written a (setq) statement, marveled at what you could do with (mapcar '(lambda)), or otherwise leveraged the power of AutoLISP to make AutoCAD a bit more useful, take a moment to remember the passing of John McCarthy.
(setq hat 0).
Posted by: dave ea | October 26, 2011 at 01:35 PM
I knew I could rely on you, dave, for some fitting memorial syntax. Here is mine (formatting ruined by Typepad, I'm sure):
(setq now (atoi (substr (rtos (getvar "cdate") 2 6) 14 2))
start (1- now))
(while (/= now start)
(setq silence 1 hat 0)
(setq now (atoi (substr (rtos (getvar "cdate") 2 6) 14 2)))
)
(setq hat 1 silence 0)
Posted by: Tom Stoeckel | October 26, 2011 at 03:48 PM