Lisp in the real world

Viewed 33376

I have experimented with Lisp (actually Scheme) and found it to be a very beautiful language that I am interested in learning more about. However, it appears that Lisp is never used in serious projects, and I haven't seen it listed as a desired skill on any job posting. I am interested in hearing from anyone who has used Lisp or seen it used in the "real world", or who knows whether it is considered a purely academic language.

38 Answers

Franz, Inc. provides an inexhaustive list of success stories on their website. However:

Please don't assume Lisp is only useful for Animation and Graphics, AI, Bioinformatics, B2B and E-Commerce, Data Mining, EDA/Semiconductor applications, Expert Systems, Finance, Intelligent Agents, Knowledge Management, Mechanical CAD, Modeling and Simulation, Natural Language, Optimization, Research, Risk Analysis, Scheduling, Telecom, and Web Authoring just because these are the only things they happened to list. — Kent Pitman

We can find other success stories here: http://lisp-lang.org/success/

and a list of current companies using Common Lisp: https://github.com/azzamsa/awesome-lisp-companies

Does Emacs' elisp count? That's the most "real world" use that I am familiar with (although I'm not sure that Emacs counts as "real world" either).

as a small startup we've built up something some people call an "application server". but in fact it's just a bunch of integrated common lisp libraries for sql connectivity and web applications. some details are available at cl-dwim project page

using that we have developed and operate a web application for the hungarian government that collect data from the local governments and calculates the relevant part of the budget of the country. this is the second budget we are planning now.

it has about 4000 users, and it runs on a cluster of computers.

as of "academic language": we are playing with things like persistent continuations for business process modelling. it's some random lisp code with a few extra process-related primitives and a few constraints. it can stop at random points in the code and fall asleep (get comitted into the database) while it waits for some external event.

is it practical or academic? you decide... :)

Reddit was originally written in Lisp and then later rewritten in Python. There's a good analysis of the switch and what it means for Lisp over at Finding Lisp.

A fairly recent open-source project that is still enjoying consistent and considerable development activity is LilyPond.

It's a music notation program that takes a easy-to-write text file as input and converts it into beautiful sheet music (pdf files). Offers all kinds of ways to fiddle with the output if you want to. It can even produce decent sounding midi files. I use it whenever I need to produce nice sheet music that other musicians will read from. I think it's better than Finale and it's free!

In the commercial category, there is also Notehead's Igor Engraver. Unfortunately, the site doesn't allow me to post a direct link to the page that talks about Lisp, so go to downloads and look at the bottom for a "Lisp" link.

There's also Naughty Dog (a computer game company) who use Lisp in their games. This article talks about that and even shows some code.

And there are many others that have been mentioned and linked to, but these are the main ones that resonate with me (being a composer/programmer/gamer/... type).

If I started up my very own major software project now, I would make my language decision based on the criteria above. Sure, I love Lisp, CLOS is awesome, real lexical scoping rocks, Lisp macros are way cool (when used as directed), and personally I really like Lisp syntax. […] But it would take a lot, or require special circumstances, to persuade me to choose Lisp for a major software project, if I were in charge of making the choice. - Dan Weinreb

I believe Autocad has extensions that use Lisp to extend the product. See AutoLISP.

There are plenty of companies, projects, and products that use Lisp in a variety of roles — I've done work for several of them.

There are two relevant points:

  1. you may never know that your latest piece of consumer electronics was built with, or even programmed in, Common Lisp, or that some service you use is powered by a Lisp server. It would be incorrect to conclude that Lisp is "never used".

  2. … and, like so many domains, those jobs never appeared on Monster.com. Just because you've never seen a job posting for it doesn't mean that there are no Lisp-required or right-tool-for-the-job opportunities out there.

Look up ACL2. It's a lisp based formal logic engine that has been used for a number of "real world" project like formal methods in software security and proofs of correctness for Floating point hardware.

If my plans work out, we will all be using Scheme in 5 years from now! ;p

I was quite impressed when I found out that the PRISM («The Prism project is a long term project to build software tools for radiation therapy planning, including artificial intelligence tools as well as manual simulation systems.») is written in Common Lisp.

At my job I am writing software that uses DICOM and I must say that writing good DICOM implementation is a hard task. In their report they describe how Common Lisp let them build a good DICOM implementation that is better (at least in some ways) than other implementation with lesser effort.

I just realized now that Maxima, a program for symbolic algebra, is written in Common Lisp. I've been using that for quite some time and I think it's also a very good real life example.

Well, it's hardly mainstream, but I use lisp for as much of my research code as is manageable. It's by far the best language I've found for the balance of dynamism & expressiveness while still generating decent performance for numerics, etc..

Scheme programming language is used as a scripting language by FLUENT Flow Modelling Software (computational fluid dynamics, CFD).

For the AutoCAD application AutoLISP/Visual LISP are used a lot for real projects and there is a large community of users.

Walmart uses clojure to process purchases real-time

Just adding to all the very wise comments above: look at the Corman Lisp tool and discover how to embed VERY INTELLIGENT FUNCTIONS into an embedded system!

It's a wonderful language, but it's crippled because (in my opinion as a software business owner and programmer) there are very few commercial Lisp packages, and the few that are out there demand a run-time fee (because a proper Lisp package can be used by end-users to write Lisp programs too).

I use Steel Bank Common Lisp to prototype code under Windows and Linux, and I love it -- but I would never consider shipping a product written with it. There's no easy way to set up single-click access to the programs, so that the end user will never be confronted with a Lisp prompt. There's no way to ship a compiled product so that the user can't disassemble it, make some changes to remove your name, and sell it as his own. I've seen mention of Lisp systems that both of these can be done in, but they're commercial ones where you have to pay run-time fees for each end-user of your program, which is ridiculous.

Lisp may come into its own some day (and I fervently hope that it does), but it isn't viable for most commercial software yet. The only exception is something where it's always going to be running on systems that you have complete control over, like a web server (and I've only heard of a couple companies using it even for that).

Related