Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

This seems incredibly useful; for someone who wants to try it out, which is a good, open-source, cross-platform CL to try it on? The example uses SBCL, but I know none of the tradeoffs.


SBCL is perhaps the fastest open-source implementation of Common Lisp. It has incredible developers and a rich set of implementation-specific functionality. SBCL's "home platform" is Linux, but it runs on Linux, *BSD, Mac, and Windows (32-bit only for Windows at present). SBCL's native code compiler rivals C/C++ for speed when properly hinted. SBCL also has the highest-quality integration with emacs (via SLIME) and Vim (via slimv). The developers seem to expect that you will use SBCL with an editor, so the command-line REPL doesn't even have readline support. ITA Software uses SBCL to run all or most of QPX, the search engine behind sites like Orbitz and Expedia. SBCL does its own memory management and likes a large heap. Standalone executable size is large (20+MB) because it includes the compiler. SBCL is derived from CMUCL and thus has a 32-years-mature lineage and is very stable and performs very well. SBCL has excellent threading , Unicode, and 64-bit support.

CLISP is another implementation that is interpteted (i.e. not native-compiled like SBCL i.e. slower in most cases). It has a somewhat nicer REPL and debugger out of the box, and super-fast bignum support. I believe CLISP is what pg used to create Viaweb.

There is also Clozure Common Lisp (predating and not to be confused with Clojure). CCL is well integrated with Cocoa on the OS X platform and seems to be moving in the direction of ARM suport (iOS support in the future?). I have the impression that CCL may be more popular with OS X users, but I have yet to find reason to use it over SBCL on Linux.

ECL (Embedded Common Lisp) is an implementation that translates to C and uses gcc for compilation. ECL builds the tiniest executables (a couple hundred K or less) and is perhaps well-suited both as an extension language and for embedded platforms. ECL does not seem to support all of the libraries I've tried with it, but it supports enough of Common Lisp to be a viable platform for those who require its strengths.


Some of this info might be out-of-date since I obviously don't use all lisp implementations all the time:

SBCL:

* Biggest weakness: not super-well tested on windows

* Strengths: Generates super-fast code, is the most comonly targeted implementation by OSS libraries

CLISP:

* Biggest weakness: Performance

* Strengths: Fast bignum implementation, most portable of all lisps (If you have a C compiler, you can probably get it working on your platform)

ClozureCL:

* Code generated is not as good as SBCL, but compiler is considerably faster

* Better windows support than SBCL

* Has builtin support for OS X gui

Ecl:

* Currently the best if you want to embed CL in C

* Application delivery is very different from other LISPs

* Uses a non-copying conservative GC (which embedding in C easier) that just can't be as good as generational copying GCs


SBCL seems to be currently most popular, but if you're working on Windows, I'd encourage you to give Clozure CL a try.

Most of the stuff I did in CL was related to 3D graphics and computer games, and while SBCL has the required performance, it tends to crash on Windowses, and every other CL I tried except Clozure CL is not fast enough to even run SDL examples in real-time.


I've used SBCL quite a bit, and only dabbled with others, but I have no complaints about it in particular. It's amazing in what it's able to do, certainly.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: