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 PM