LISP may currently be the best programming language to use for the development of engineering computer-aided design (CAD) systems. While languages like FORTRAN represent important advances over their predecessors, it may be that a single static programming language will never be completely adequate for engineering programming. What is needed is a language that can evolve in response to changing needs. This paper is concerned with the programming languages that support CAD systems. The choice of such a programming language significantly influences the flavor of the product derived from that language. The language should provide a style of interaction and a programming environment that is a good model for software developers. At the very least, this will lead to a consistency among most programs developed using that language. The language should also help reduce program complexity and permit one to program at the level of application concepts, rather than at the level of memory locations. LISP or LISP-like languages provide perhaps our greatest opportunity for reducing program complexity to manageable proportions. More importantly, the systems are of better quality when they reflect the style provided by LISP; they tend to be more easily tailored to the needs of individual users