Home FAQ Services Articles Software & Documentation Contact Free Consultation

Why use Lisp languages?

Power, speed, flexibility, and ease of development

The party line on Lisp is that it's an academic language used only by completely impractical Artificial Intelligence researchers.

I don't think I can do any better at explaining why you should COMPLETELY IGNORE the party line, and use Lisp than Paul Graham does in his article on how he made Yahoo Store using Lisp. But, I can add additional information to what he has to say.

First of all, there are two major Lisp types in use today: Scheme, and Common Lisp. In general Scheme is a simpler language and is quite suitable for a large variety of tasks. It has been especially successful as an embedded language (see The Gimp, which uses scheme to process images automatically, and GNU Guile a scheme interpreter used in Gnome for examples).

Common Lisp is a very robust language suitable for any task you can imagine. There are three main implementations which are free to use, and various commercial implementations. See the references at the end of the document for more information.

First let me give you a few myths you will hear about Lisp, and tell you why they are wrong.

Myth: Lisp is slow.

There are excellent compilers available for both Common Lisp and Scheme. The compilers generate code that is comperable in efficiency to reasonably well written C++. Lisp allows you to program in so many different styles that it is relatively easy to write something that works, but does not use the most efficient methods, whereas C/C++ encourage highly efficient coding but it generally takes considerably longer to write something that works at all. Lisp will generally smoke Java code and provides much more consistency in development and run times.

Myth: Lisp is only for AI.

Lisp is frequently used by Artificial Intelligence (AI) researchers but only because they recognize the tremendous advantages from using Lisp. Other people who recognize these advantages are:

Yahoo Store uses Lisp to configure "online stores" for its customers.

Sony, Electronic Arts, and Nintendo use Nichimen's graphics system written in Lisp for advanced 3D graphics in game systems.

AutoDesk uses Lisp in Autocad.

There are many others, and clearly Lisp can be used in any major computing task.

Myth: Lisp only has lists, no other data types.

This objection is usually made by people who used Lisp in a computer science class. The classes typically focus on the power of lists, but for pedagogical reasons do not actually teach the full power of Lisp.

Rest assured, Lisp has vectors (arrays), hash tables, strings, numbers of arbitrary precision, functions, symbols, and many other data types, including the ability to create your own.

Myth: Lisp is out of date

Lisp has been around for a long time. John McCarthy invented Lisp in the late 1950's. But Lisp is so powerful, and has so many features that are fundamental to the very concept of programming that it will be around for many years to come. Unlike Fortran or COBOL this is a language with so much power that it will never be considered an old clunky language.

So why don't more people use Lisp? The power of momentum as described in Paul Graham's article cited above. If you are looking to make a fast break, and produce high quality software as quickly and reliably as possible, contact me and let me help you learn Lisp, and give your projects a powerful technical edge that your competition won't bother to find out about until it's too late.

References for Common Lisp and Scheme

Common Lisp

CMUCL a sophisticated piece of Free Software, a compiler for Common Lisp on x86, Sparc, and Alpha architectures. This is one of the best compilers available in any language.

SBCL a compiler based on CMUCL for x86 architecture with significant maintenance enhancements.

CLISP the Free Common Lisp system used by Paul Graham for Yahoo Store.

CLOCC the Common Lisp Open Code Collection. A library of Common Lisp software designed to handle many tasks including web programming, and the kinds of things Perl is often used for like parsing XML.

Franz Inc a maker of commercial supported Common Lisp compilers and tools.

Xanalys a provider of commercial Common Lisp systems, and the Common Lisp Hyperspec an online version of the ANSI standard.

Scheme

Gimp Scripting with Scheme

Guile the GNU project implementation of scheme.

Stalin is a very fast optimizing Scheme compiler. It's author has his own page as well.

slib is a library of scheme code for many different tasks.

Aubrey Jaffer is the author of SCM and the maintainer of SLIB. He also has a symbolic mathematics package called Jackal, written in scheme, available on his site.

For automatically incorporating C/C++ code into Guile scheme there's the G-Wrap system.

Some more links:

S2 a scheme translator.

The Revised^5 report on Scheme.

Other Guile resources including hobbit, a compiler.

Bigloo a practical scheme compiler.