Next Up Previous Contents Index
Next: Number One Up: The Autodesk File Previous: Insiders and Rule

Why Lisp?


As the release of AutoCAD 2.1 loomed closer, we were somewhat diffident about unleashing Lisp as our application language. This was at the very peak of the hype-train about expert systems, artificial intelligence, and Lisp machines, and while we didn't mind the free publicity we'd gain from the choice of Lisp, we were afraid that what was, in fact, a very simple macro language embedded within AutoCAD would be perceived as requiring arcane and specialised knowledge and thus frighten off the very application developers for whom we implemented it.

In fact, when we first shipped AutoCAD 2.1, we didn't use the word ``Lisp'' at all--we called it the ``variables and expressions feature''. Only in release 2.18, in which we provided the full functional and iterative capabilities of Lisp, did we introduce the term ``AutoLisp''.

AutoCAD Applications Interface

Lisp Language Interface
Marketing Strategy Position Paper

by John Walker -- February 5, 1985

Lisp?!?! Why the Hell did you pick the most arcane, obscure, and hopelessly-rooted-in-the-computer-science-department language in the world for an AutoCAD programming language?

Over the next six months, all of us will have the opportunity to answer this question. There are very good reasons why we chose Lisp as the initial language to attach to AutoCAD: I'll try to explain them herein. However, there is an important point we don't want to lose track of: the built-in Lisp interface we're providing is only the first in a series of Applications Interface products, allowing AutoCAD to be operated by application programs written in all major application languages. I anticipate interfaces to FORTRAN, compiled BASIC, C, and Pascal being available over the next 12 months.[Footnote] Thus, Lisp is the language we sell for small applications--we are not offering it or suggesting it for major programming projects: that will be addressed by the other language interfaces, which permit a software vendor to attach their program to AutoCAD in its native language.

But back to Lisp. The following is my reply to ``Why Lisp?''.

Lisp is the preeminent language in the field of Artificial Intelligence, and has been for over two decades. Many of the most complicated programs ever written have been written in Lisp. Lisp is far from an esoteric toy of computer scientists: a system called NAVEX, written entirely in Lisp, will soon be ensuring that the Space Shuttle reaches the runway. Expert systems implemented in Lisp will be a central part of the Space Station environmental and energy management systems.

Lisp is ideally suited to the unstructured interaction that characterises the design process. Unlike programming languages such as C and FORTRAN, which force one to organise a problem entirely before programming, Lisp encourages exploring various approaches to a problem interactively, exactly as CAD helps a designer.

No other major programming language can so easily manipulate the kinds of objects one works with in CAD. As opposed to numerical programming, CAD constantly works on collections of heterogeneous objects in variable sized groups. Lisp excels at this.

Because Autodesk's implementation of Lisp is completely interactive and provides on-line debugging facilities, Lisp is among the easiest of languages to master. Because the response to all changes is immediate, programs may be tested as easily as with an interactive BASIC interpreter.

Finally, the compelling reasons which make Lisp the language of choice for large applications are forcing the design of computers optimised for Lisp. Machines from Symbolics and Texas Instruments are already on the market. This technology will be crucial to high-performance systems of the late 1980's and 1990's. By moving CAD in this direction, Autodesk is positioning your applications to take advantage of this development.

So there!

Next Up Previous Contents Index
Next: Number One Up: The Autodesk File Previous: Insiders and Rule

Editor: John Walker