I have been programming in lisp for a while, not as a main language. But i've gotten pretty decent at it. But I was wondering about if it was a legacy language or not.

Has Lisp ever really been anything more than an academic language with very little real-life applicability?

I know that some software use Lisp-based syntax for their scripting language, and that there are tons of dialects of Lisp, but that's mainly because it's super easy to parse (i.e., people who like to write interpreters and compilers look for the easiest syntax to parse, so that they won't have to go through too much trouble writing the parser for it).

There are some corner markets (like early AI) that favored Lisp or Lisp-like languages, but they are pretty small and don't really have a mountain of legacy Lisp code to maintain. And as far as I know, these domains have largely moved on from using Lisp a good while back.

Most people that I've heard talk seriously about Lisp were (1) very old and (2) teaching at a computer science department. That's a hint that it's just an old academic language. It probably has some historical importance to computer science and has some cool / smart features (all academic languages do). But to be a "legacy" language, it takes more than just being old or interesting, it needs to still be widely used (even when most would want to see it disappear, often especially those who work with it every day). Languages like Fortran, C, COBOL, Ada, SPARK, Haskell, etc..., qualify (but some are debatable) because, even though they are old and in some sense "obsolete", they are still widely used (in some specific domains) and simply can't be easily migrated away from because of the sheer amount of code or because of how safety-critical that code is (migrating code is a dangerous thing, it can introduce a lot of bugs). I would not say that Lisp qualifies, not as far as I know, it's just an old academic language, that's all.

commented: Ah Lisp, the Prolog of the America's. +6

Has Lisp ever really been anything more than an academic language with very little real-life applicability?


Common Lisp and a subset of its ancestors are not academic languages at all. A few people even made money with it.

Scheme is (in particular) the academic lisp.

There are some corner markets (like early AI) that favored Lisp or Lisp-like languages, but they are pretty small and don't really have a mountain of legacy Lisp code to maintain.

I think the real reason "early AI" and such used Lisp was because it was a nice-to-use language the way Python/Perl/Ruby later were in comparison to C/C++03/Java. They just didn't have needs such as distributing software on floppies to Windows 3.1 users and running ultra-fast, and when other people ended up not needing the same thing (e.g. server-side environments), the same thing happened. Of course, I wasn't there.

Also, Haskell isn't obsolete in any sense, but C is obsolete for some set of things it used to be a premier choice for.

To engage in a bit a thread necromancy, I should mention that Lisp is undergoing one of the periodic revivals it experiences, where people outside of the original Lisp community rediscover the language and try (generally with little success) to make it into something more mainstream. Logo, Dylan and Python came out of previous waves of Lisp interest, and a number of languages have been influenced by things which were pioneered by Lisp but which then went into mainstream use elsewhere, or at least influenced things which did (e.g., garbage collection, lambda functions, lexical macros, higher-order functions, object-oriented programming - in the form of the 'actors model', circa 1966 - functional programming, constraint programming, closures, logic programming, tail call optimization, continuation passing, aspect-oriented programming, etc).

In the mid-1980s, it actually looked to some people like Lisp was set to take over the industry, as Lisp Machines proliferated and interest in AI soared. However, the cost of those machines ($35,000 in 1985 dollars) was astronomical compared to a $10K Unix-based workstation, never mind a PC or a Mac; AI proved to be less useful in the real world than expected (at least in the ways they thought it would be used); and most of all, the performance of microprocessors and semiconductor memories kept climbing until they surpassed the hand-built TTL of the Lisp workstations even for Lisp itself. The whole debacle left the LispM companies in receivership and soured the prospects of Lisp for decades.

There are always a few oddballs - such as myself - who try to come up with a new, world-beating dialect of Lisp that will break into the mainstream, but no one seems to have managed it to date. The closest anyone has come so far is Clojure, a JVM-based dialect which is the current contender and which has managed against all odds to carve out a tiny niche for itself in the web services, Android app, and website development markets. While it is definitely up-and-coming, it is still a very miniscule part of the overall market - there are probably less than a double dozen companies worldwide currently using it, including the startup I am now doing some Clojure coding for in my spare time (and that's only because I insisted on it). As Lisp goes, that's a breakaway success, but it's still smaller than the market share of, say, Delphi.

Prolog! Prolog! Prolog! :-) Time for me to re-read Clocksin and Mellish.

I read that some of the other languages are called curly brace languages.

To engage in some more gratuitous thread necromancy, I thought I'd share a line from a .sig I use on the OS-Dev forums (with a more detailed explanation about it to be found in my user page on the wiki):

Lisp programmers tend to seem very odd to outsiders, just like anyone else who has had a religious experience they can't quite explain to others.