Practical Lisp 2008

A little more than three years ago there was a thread in comp.lang.lisp about what people were working on in Common Lisp. I found the replies, some summarized here, quite inspirational; they were from people doing practical stuff (even Real Work) with Common Lisp, beyond things like going through Project Euler or doing exercises from SICP. (Not that those aren't fine things to do, but.)

Let's update this. What are you using Common Lisp for in 2008? What are you using to do it? I'll start:

I mostly use Common Lisp to make graphics toys at Wigflip.com. To that end I'm always looking for new ways to produce or consume graphics-related things. For example, I'm adding support for processing OpenType fonts to ZPB-TTF and making a hybrid of Skippy and Vecto to produce simple vector-oriented animations. I'd also like to add APNG support to ZPNG.

I primarily use SBCL on Linux, x86 and x86-64, with Emacs and SLIME. For deploying all my website stuff I use Edi-ware extensively: Hunchentoot, HTML-TEMPLATE, and CL-WHO. I use CLSQL for a few things too. For graphics work, I use mostly my own libraries.

How about you? Leave a comment and let me know.

Tags:

Comments

(Anonymous)

Re: High Performance Computing

Which language do you compile from? Your comment above suggests that it is Lisp, but it would have to be a subset of Common Lisp, right? Beating C/C++ with two orders of magnitude sounds like a tall order, unless the C/C++ applications were written by physicists :-)

It would also be nice to see some detail about the compiler like how its organized, optimizations, design of the intermediate code, its speed.

Re: High Performance Computing

I don't know what Marc was describing, but it might have something to do with this:

http://xach.livejournal.com/86862.html

(Anonymous)

Re: High Performance Computing

Well competing applications were written by quants in banks :)
More seriously we design DSL (Domain Specific Languages) compilers for every kind of application we target along with specialized hardware cores. So each DSL is focused on one task and does not needs to be general. For instance monte-carlo options pricing, feed handling, and gene sequencing don't need the same functions and data types. (The example given by Zach is done with the monte-carlo option pricing DSL compiler)
More on this at the ECLM 2008 ;-)

Marc