Sven Van Caekenberghe has written a case study of his experience developing a dynamic web site/application using unconventional technologies (including lisp), “Rebel With A Cause”.
The site is for the De Handelsbeurs concert hall in Belgium. It uses two Apple XServes running OS X, OpenMCL, and Portable AllegroServe. They also built a lisp implementation of Object Prevalence (in-memory DB, basically) and a web application framework called KPAX.
With a Lisp application server, the read-eval-print loop including all dynamic Lisp features remains available! This means that we can do the following: login to the server, connect to the read-eval-print loop and inspect all the internal datastructures of the server, while it is running. To update the server to a new version, we connect to the read-eval-print loop and invoke the build process and have it load and install the new code, without taking down the server process - active user sessions and other datastructures (like caches) remain in place and continue to work. Needless to say, this results in serious developer productivity gains and happy customers.
[...]
It is our opinion that object prevalence makes a lot of sense in a dynamic, interactive language like Common Lisp (much more sense than it does for Java). A Lisp read-eval-print loop together with Lisp's strong datastructures and manipulation functions makes for a much better alternative to SQL for querying and database maintenance. Without such a capability, using object prevalence will be a lot harder.
[...]
In the busiest day so far we got 20.000 hits (5700 hits an hour) and transferred 200 Mb of data. All this was accomplished with the standard allegroserve configuration of 5 worker threads.
It's good to see OpenMCL and Portable AllegroServe handling all that.
There's a relevant thread on the clump mailing list, too.
Posted by jjwiseman at November 01, 2003 01:30 PMI'm very impressed, both by Sven's writing and by his project for De Handelsbeurs. I think he makes an excellent, well-reasoned case without degenerating into any kind of evangelism.
Posted by: Jaap Weel on November 1, 2003 07:57 PM[Degenerating into evangelism:]
If some lisp hackers in SF could propose this system for the nightclub DNA Lounge, the dark ages could officially be proclaimed over.
Or comp.lang.lisp could get some interesting flamage.
Posted by: Christian Nybø on November 2, 2003 04:49 AMthese typewriters have come a long way. i last saw them in berlin about 4 years ago. if you look closely, you can see the giveaway qwertz :)
Posted by: detyped on November 2, 2003 08:39 AMUh... I wish there was free x86 lisp implementation supporting threads that could achieve similiar results.
I've tried portable aserve with cmucl and performance was khm.. rather pathetic. Maybe sbcl could perform
a bit better - I haven't tried yet.
Nevertheless it seems OpenMCL developers did a wonderful job implementing threads :-)