Three giants of the computer world have passed away in 2011: Steve Jobs (co-founder of Apple Inc.), Dennis M. Ritchie (inventor of C) and John McCarthy (inventor of LISP, Artificial Intelligence, and time sharing).

Even though all three of them equally revolutionized the IT world, only Steve Jobs’ death drew the attention of the “genteel beast,” a.k.a. the mainstream media, while Dennis M. Ritchie (also known by his handle “dmr” to us old farts) and John McCarthy passed away in silence, unsung and unpraised. This is a crying injustice, IMHO, because without dmr’s C, there would be no Unix, Linux, no Mac OS X, no Windows… and no iWhatever gadgets today; and without McCarthy’s LISP, the second oldest high level programming language (after FORTRAN) still in active use today, the whole field of Artificial Intelligence wouldn’t have evolved the way it did, and most modern programming languages wouldn’t have adopted some of LISP’s best features.

John McCarthy (1927-2011)

John McCarthy’s obituary at Stanford starts with the words:

McCarthy created the term “artificial intelligence” and was a towering figure in computer science at Stanford most of his professional life. In his career, he developed the programming language LISP, played computer chess via telegraph with opponents in Russia and invented computer time-sharing.

This is not only impressing, it is absolutely astonishing achievement for one of the brightest minds in the world.

McCarthy’s death came as a blow to me, because I’m a fervant LISP hacker since I was a teenager. I cut my teeth with LISP in the 1980ies and have used its various dialects ever since, be it on mainframes or on small 8-bit machines, privately and professionally. My introduction to advanced data structures, recursive algorithms, and to concepts of Artificial Intelligence was, of course, LISP-based; and this LISP background and culture has helped shape my mind and way of thinking ever since.

If you’re interested in McCarthy’s work, LISP and AI, please visit the following highly recommended sources of which I can only give the main entry points. It’s really worth it! Explore and enjoy.

  • McCarthy’s Home Page (visit it as long as it is online!) John McCarthy’s home page features a collection of papers he wrote on the various subjects of his seminal work. The page is somewhat in disarray and old-school, but content matters, not presentation.
  • Common Lisp, the Language (2nd Edition), also known as Cltl2, is a formal specification of the Common LISP language that preceded the current and official ANSI Common LISP standard. McCarthy developed Lisp 1.5, the grand-grand-grand parent of current LISPs; Common LISP being the unified state the language has reached today.
  • On Lisp, Paul Graham’s take on LISP; a much more readable and accessible introduction to LISP than Cltl2 or the ANSI standard (final draft). There is an updated version of this book that covers ANSI Common LISP which isn’t legally freely available online… yet.
  • While Common LISP is a huge language with a big library, there’s also a minimalistic LISP dialect called Scheme. Its most prominent textbook is the Wizard Book, which was the foundation of CS-101 at the MIT for a long time (they replaced Scheme with Python recently, which is a shame, IMHO).
  • A big collection of AI-related software, mostly in LISP, is available at the CMU Artificial Intelligence Repository. Highly recommended resource!
  • If you’re interested in LISP and AI at the same time, you may want to read Peter Norvig’s Paradigms of Artificial Intelligence Programming (highly recommended!) and Patrick Henry Winston’s Lisp and Artificial Intelligence.
  • common-lisp.net is a Wiki featuring a repository of Common Lisp code that you may want to use in your own projects.
  • As an ANSI Standard, Common LISP isn’t tied to a specific implementation. Good current implementations of Common LISP include:
    • Steel Bank Common LISP (SBCL), one of the most portable Common LISP compilers, based on the venerable CMUCL
    • CMUCL, is also a good Common LISP compiler from Carnegie Mellon; not as portable as its spin-off SBCL though.
    • Clozure Common LISP (CCL), a Common LISP compiler derived from a commercial variant that was open-sourced as OpenMCL, which generates very fast code.
    • ECL (Embedded Common LISP) is highly portable Common LISP compiler that generates intermediary code in C that can then be compiled to native machine code.
    • CLISP, a Common LISP system that generates intermediary P-Code instead of native machine instructions. This makes it very portable, though a little slower than traditional LISP compilers (see above).
  • Major projects in LISP include the computer algebra systems Maxima, Reduce, and the fascinating Axiom.

I’m seriously considering writing a book on LISP in the future.

Dennis M. Ritchie (1941-2011)

Dennis M. Ritchie, the inventor of the ubiquitous C programming language, Unix’s mother tongue and most used high level programming language of the world, passed away October 2011 at the age of 70.

While at Bell Labs at the end of the 1960ies and begin of the 1970ies, Dennis M. Ritchie worked with Ken Thompson on the UNIX operating system. Back then, the initial version of Unix was written in assembly language, and porting it to other computer architectures required each time a complete rewrite. Dennis’ main contribution to Unix in particular, and to the field of computing in general, was the C programming language. Soon after evolving the obscure language BCPL into C, he and his colleagues at Bell Labs managed to port Unix to a plethora of other machines, making it on the long run the de facto standard operating system.

Other operating systems besides Unix, including MS-Windows, have also been written in C (or more recently in C++) for maximum portability. As a testimony to C’s expressive power, most application software and embedded software ever written has been programmed in this excellent programming language as well.

Together with Brian Kernighan, Dennis M. Ritchie wrote the standard textbook on C, The C Programming Language (1st edition covered the old K&R C, the 2nd edition covering ANSI C).

To show their gratitude and respect, the FreeBSD developers dedicated FreeBSD 9.0 to the memory of Dennis M. Ritchie (“dmr”):

The FreeBSD Project dedicates the FreeBSD 9.0-RELEASE to the memory of Dennis M. Ritchie, one of the founding fathers of the UNIX[tm] operating system. It is on the foundation laid by the work of visionaries like Dennis that software like the FreeBSD operating system came to be. The fact that his work of so many years ago continues to influence new design decisions to this very day speaks for the brilliant engineer that he was.

May he rest in peace.

More on Dennis M. Ritchie’s work is available from his home page (visit it before it goes offline!).

I’ve met dmr in person at a USENIX conference a long time ago, and I’ll never forget his kindness.

Steve Jobs (1955-2011)

I’ll best remember Steve Jobs as the co-creator of the Apple ][e, my very first own personal computer in the mid-1980ies.

Even though he wasn’t Apple Computer Co.’s technical genius (Apple’s tech guru and Apple I and II main creator was Steve Wozniak (Stephen Gary “Woz” Wozniak)), Steve Jobs was the one who propelled Apple to the giant it is today.

How much of this was due to his marketing genius, to his love for detail and design, or to his famous reality distortion field will forever remain a mystery.

May John, Dennis and Steve rest in peace. They’ll be missed.