Wednesday, November 16, 2005

Tomcat, Ruby on Rails, and Araneida

While I do most of my work using Tomcat (mostly JSPs, POJOs, a few custom tag libraries, and a few persistence strategies) I still devote a fair amount of time covering two other great server side platform options: Ruby on Rails and Common Lisp Araneida and cl-http web servers.

For server side Lisp, I think that I am going to start favoring Araneida over cl-http because Araneida (with LispWorks Professional) only uses about 20 megabytes of working set memory while cl-http uses much more memory. Most people might find Lisp a strange language choice, but not only have I written two Springer-Verlag Lisp books so my Lisp skills are fairly good, I find the ultra-high performance of natively compiled Lisp refreshing after both java (which also has great performance on the server side once HotSpot has had a good chance to work) and Ruby (which only has OK performance while executing built in methods that are compiled C code).

Because good Lisp programmers are difficult to find, I tend to stay away from Lisp for work performed for clients and just use it for my own business. This is required because I usually build systems and then hand them off to my customers to run and support and they are unlikely to have Lisp programmers on staff.

Another very good Lisp server package is the DrScheme/MzScheme web server that supports continuations (like Avi's Smalltalk Seaside project) and also seems to have low memory use and good runtime performance. The Common Lisp based UnCommon Web package also supports a modular/component style of web application development - it looks promising but so far I have only read papers and documentation on it. Continuation based web application development looks very interesting because the programmer does not have to work so hard maintaining navigational state, etc. and also allows a more component based development style.

No comments: