I started writing this book six years ago in response to a publisher's inquiry about Lisp books. Part of their submission process involved my filling out what amounted to a market research form that disclosed all of the Lisp books I knew about, their publication dates, and a brief synopsis of the strengths and weaknesses of each.

On the basis of my market research, the publisher decided that their marketplace didn't need another Lisp book. So I kept going, because I knew otherwise. I wrote in fits and starts over the first two years, and published an early draft of the book on the web. Readers of "Successful Lisp" from all over the world have sent me positive feedback, thanking me for making the book available as a resource for their use in classes and personal studies of Common Lisp.

A few of the more enthusiastic readers even compared "Successful Lisp" to a couple of my favorite Lisp texts. While I'll admit to having my spirits buoyed by such unabashed enthusiam, I'll also be the first to point out that "Successful Lisp" attempts to cover the subject in a somewhat different manner, and at different levels of detail, than the other available texts. By all means, enjoy this book. But when you need more information than I've been able to fit in this limited space, please turn to some of the other fine books listed in Chapter 33.

Common Lisp is, at its core, a very simple language. Its apparent size is due not to complexity (as is the case with certain more recent languages) but rather to the breadth of functionality implemented via the functions and data types that are provided in every copy of Common Lisp.

The other encouraging feature of Common Lisp is its stability. The language became an ANSI standard in 1994 after four years of intensive work by vendors and designers alike, during which time several subtle problems and inconsistencies were removed from the language and the corrections implemented in production compilers and tested against real-world applications. This time consuming process of review and refinement was quite successful, in that the language has not required correction, change or clarification since its standardization. That's good news for me, since I haven't had to revise my book to keep up. Good news, too, for the people who write large, complex programs in Common Lisp; their code just keeps on working even when they change hardware or compilers.

The one criticism that has arisen over the years is that Common Lisp hasn't adopted enough cool new functionality to give it more of a mass appeal. Vendors provide their own extensions for networking, graphics, multiprocessing and other features, but the lack of standardization makes it difficult to employ these features in a portable manner. While I share some of that concern, I'll also observe that these very features have changed significantly over the years since the ANSI standardization of Common Lisp. Over the same period, newer languages have borrowed from Common Lisp's toolbox for ideas regarding expression of algorithms, symbolic manipulation of data, and automatic storage management. Someday networking and graphics will be as well defined, and I'm sure we'll see these aspects of computing incorporated into Common Lisp. For now, be glad that you can tell the difference between what's stable and what's the flavor of the month.

This will probably be my last update to "Successful Lisp", as my personal goals and interests have taken me away from the deep involvement I had with computing through the 80s and 90s. I suspect that "Successful Lisp", if it has a lasting value within the Common Lisp community, will do so because of the stability and longevity of the language itself.

I wish you well. Enjoy the book.

David Lamkins
February 2001

Contents | Cover
Acknowledgments | Foreword | Introduction

Copyright © 1995-2001, David B. Lamkins
All Rights Reserved Worldwide

This book may not be reproduced without the written consent of its author. Online distribution is restricted to the author's site.