A trip from theory → hack → theory
Word is out that John MacCarthy (father of many things CS) has passed. The sad news of his death reminded me of digging and pushing out this draft. While doing a “digital excavation” browsing through “Defending AI Research” I got to read about Joseph Weizenbaum (Chapter 1, “An Unreasonable Book”). That is how I found out that Weizenbaum is the creator of ELIZA (I think I first met Eliza around 1990 running at a friend’s Amiga 500). Eliza in turn was written in SLIP which in turn was implemented in FORTRAN. Curious as to why SLIP did not have the visibility of LISP which seems to be the eternal programming language, I got to read the paper too. The brilliance of the hack amazed me. But then again the fact that SLIP feels like a hack may explain why it never really took off.
For me this was one of the happy instances where theory beats practice by far. I do love these cases, even though most of the times I am on the “implement a quick hack to get going” side, being a system administrator and having to deal with unreasonable deadlines. It was only a few days later that I learned that McCarthy himself did not intend for Lisp to be an actual programming language. Steve Russell did that by realising that he can code eval in some other language and then use it to code Lisp. Sometimes the brilliance of the creation exceeds the expectations of its creator.
I could go on ranting about how Lisp (and not necessarily Common Lisp) influences how one thinks about dealing with programming problems but Greenspun’s 10th rule suffices. And remeber that newLISP was covered by 2600 (Winter 2006 – 2007) as a system administrator’s tool.
Thank you Professor McCarthy for Lisp, Circumscription and the Situation Calculus among other things, all fully theory backed stuff and mind openers even when not directly applied in my everyday practice.