Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I'm learning Common Lisp, mostly as a "mind gym" hobby thing, but I want to end up with a set of skills that would also be usable "in real life", because when you learn a language you also accumulate knowledge about module and package management, deployment and stuff, whether you like it or not, so I want to learn with a CL implementation that is also usable in production. So my question is:

What CL implementation is most usable "in production", having attributes like these? :

  • it's multi-platform - one should be able to use the same language implementation and languages on a Linux server, a Windows dev machine and a MacOS one (the coolest thing would be being able to also compile for Android, Windows Phone and RT and maybe even iOS)
  • it has good concurrency, parallelism, multi-threading features - and these features work cross-platform, otherwise it doesn't count
  • it's easy to interface with other languages - working with C libraries is a must, but anything else, like an easy CL-Python interface would be nice

I insist on the multi-platform part because I know that one of the serious arguments for Reddit ditching CL (CMUCL - btw, I know SBCL is fork of CMUCL, but how do they compare?) was that developers couldn't just use their Macs to develop without being ssh'd into a dev server environment (quote: "On my Mac, my choices of threaded Lisp implementations was limited to OpenMCL, and in FreeBSD it's CMUCL."). Yeah, one can use a dev VM, but still...


Note #1: I was close to settling on CLISP but I don't know about its concurrency features, and I also came across this: "it all-but-forces your code to be released as GPL" (I can't understand what this means or how can a languages's license become forced on your code, but I'm not fluent in legalese...).

Note #2: I'm not really fond of the JVM, and if I were to use a Lisp on it it would be Clojure and nothing else, so no JVM Lisps suggestions, please :)

share|improve this question
    
Take a look at CCL. –  danlei Jan 20 '13 at 17:58
    
@danlei nice to know about it. how would it compare to SBCL? (I found that now there's a SBCL fork with threading support even on Windows) –  NeuronQ Jan 20 '13 at 20:31
    
I haven't used SBCL for quite some time – I'm afraid I can't say much about its recent development. –  danlei Jan 20 '13 at 20:37
    
It's hard to imagine how a programming language compiler could compel its results to be released as GPL. That would be like requiring Word documents edited by OpenOffice to be released under the GPL (if OpenOffice were GPL'd). Makes no sense. That said, the answer provided here seems to adequately address those issues. –  Robert Harvey Jan 22 '13 at 15:38
1  
Also, what did you search for concerning CCL and didn't find? Documentation is online, and if you have a really CCL-specific problem, you can ask it on their mailing list (openmcl-devel@clozure.com), or on #ccl@freenode. –  danlei Jan 25 '13 at 18:06
show 6 more comments

1 Answer

Disclaimer: I'm a (minor) contributor to SBCL, but I was a user first. As a happy user of CLISP, CMUCL, and SBCL, here's why SBCL is my "go to" CL implementation:

Steel Bank Common Lisp meets the criteria you mention:

  • Runs on MacOS, Windows, and Linux (among other platforms)

  • Provides an identical API for threading and concurrency control on all of these platforms

  • Has a comprehensive foreign function interface to allow interfacing with C

In addition, SBCL is a good Lisp environment in general:

  • it's a native Lisp -- no JVM, no bytecode

  • it's well supported by SLIME and Quicklisp

  • it's a mature and complete implementation

  • it's actively developed, and I've seen good turnaround when I've hit bugs

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.