Add new comment
I used to program in the Common Lisp programming language a long time ago and a few months ago I bought the book Land of Lisp: Learn to Program in Lisp, One Game at a Time! and it sparked a new interest in the language for me. I was working on a prototype of a web application using Django and Python and I decided, hey why not use Common Lisp? It's been refreshing so far, I'm using quicklisp to install libraries and it's ridiculously simple. I'm also at around 80 lines of code right now for the application but I think that's going to grow to maybe 300-400 lines maximum. The web application is pretty simple really though it was hard to see that while using Django and Python. It felt like I was not designing the views and models properly. It feels like using a list as the default data structure and a few functions is easier than creating a bunch of classes and methods. Maybe that reflects badly on my programming skills but whenever I use Lisp, it feels like it doesn't get in my way. Django is a language layered on top of Python which means you have to learn a whole new vocabulary. With Lisp, I can design my own domain-specific vocabulary when necessary and because of the close integration with Emacs through SLIME I can quickly look at reference documentation. When I was working with Django, it was necessary to have a web browser open to browse through the reference guide (and the Django book) and I couldn't find good API documentation for it either. Right now I'm using the following programs for the web application:
- Quicklisp (package manager)
- HTML-TEMPLATE (templating language)
- Hunchentoot (web server)
- cl-syslog (interface to syslog)
- lisp-magick (interface to ImageMagick C library, MagickWand)
I'm using lighttpd as my web server which will rewrite requests to the Hunchentoot web server. I can't wait to be able to use some profiling tools to see how well it performs under a heavy load. That'll give me a chance to learn how to use some load-testing tools as well.