IBM recently published an excellent article on Lisp as part of its “Crossing Borders” series. Its author refers to it as “The El Dorado of programming languages” – here are some extracts:
Lisp has long been recognized as one of the great programming languages. The fanatical following it has inspired throughout its long history — nearly 50 years — tells you it’s something special. At MIT, Lisp plays a foundational role in the curriculum for all programmers. Entrepreneurs like Paul Graham used Lisp’s incredible productivity as the jet fuel for successful startups. But to the chagrin of its followers, Lisp never made it into the mainstream.
I recently finished my first marathon and found running much more rewarding than I ever could have expected. I turned an act as simple as taking a step into something extraordinary for the human body, running 26.2 miles. Some languages, like Smalltalk and Lisp, give me a similar feeling. For Smalltalk, the step is the object; everything in Smalltalk deals with objects and message passing. With Lisp, the foundational step is even simpler. This language is composed entirely of lists. But don’t let the simplicity fool you. This 48-year-old language comes with incredible power and flexibility that the Java language can’t begin to match.
Notice that the author attaches a similar importance to Smalltalk – just as I do.
His remark about Lisp never making it to the mainstream is interesting since IBM introduced a mainframe-based Lisp in the 1980’s as part of a broader initiative to market it’s AI products. In fact, many other Lisp implementations were introduced around the same time and very few were successful in the market. In retrospect, some reasons were:
- high prices
- over-hyped expectations
- expensive memory and processing power
- lack of standardized data exchange formats (eg XML)
The world has changed in the two decades since IBM’s mainframe Lisp was introduced, and many of the impediments that blocked its adoption have disappeared.
I expect that Lisp (and Smalltalk) will see a revival as Internet users demand a level of application flexibility which the current approaches (Ajax,Xaml/C#, MXML/ActionScript, OpenLaszlo, etc) will be unable to deliver.