November 03, 2007

Lisp success story from Hungary

[Levente Mészáros posted the following Lisp success story to comp.lang.lisp. I reproduce it here with kind permission so that it is also available as a blog entry. In other words, the following is not written by me, but by Levy.]

We are a small group of friends (3-5) who left the "professional" programming scene about one and a half year ago to start our own Lisp business.

In July, 2007 we started working on a project for the Hungarian government with a very tight deadline. In mid October the system showed first life signs and now we can say it is extensively used by thousands of users. In spite of the short timeframe and the remaining glitches it was a surprise even for us that the system is able to handle such a load.

Unfortunately the application is not publicly accessible, so we can't provide a URL, but we can give some of the details. It is used for gathering data from the Hungarian communes to help the budget planning.

The entire system is based on opensource software, it runs on multiple SBCLs behind an apache load balancer. The data is stored in a PostgreSQL server.

We have around 4000 registered users, average 300 online and more than 500 at peak times. There are 7000-10000 logins per day.

We use the following Common Lisp libraries. Some of which are ours and some of which are built by others. Many thanks for their efforts, especially to the SBCL developers!

Data storage/persistence
- cl-perec
- cl-rdbms
- cl-postgres (postmodern)

- cl-dwim (the umbrella project)
- yaclml
- parenscript
- rfc*

PDF exporting
- cl-pdf
- cl-typesetting

Unit testing
- stefil
- SLIME and emacs with customizations

- computed-class
- contextl

- bind
- alexandria
- iterate
- cl-def
- cl-l10n
- cl-graphviz
- cl-serializer
- defclass-star
- local-time
- cffi
- babel
- verrazano

and more...

Main software components:
- Ubuntu linux 6.10
- PostgreSQL 8.2
- SBCL 1.0.10
- Apache2 (due to various headaches soon to be replaced by a lisp based load balancer)

- 10 nodes with two dual core x86-64 CPUs summing up to 40 cores altogether, each node has 3 Gbytes ram.
- Currently we use one of the nodes as database server but soon it will be replaced with another server with 2 or 4 quad core x86-64 CPUs, 300 GByte disk in raid 5 and 16 GBytes ram.

Some people say Lisp is dead but seems like there's life after death... ;-)