5 ms·
I'm not too knowledgable about lisp, but what should I focus learning, Clojure or Steel Bank ? If I understand properly, SB Common lisp doesn't run on a VM ...
by guiomie 12y ago
I'm not too knowledgable about lisp, but what should I focus learning, Clojure or Steel Bank ? If I understand properly, SB Common lisp doesn't run on a VM ... ?
- brudgers 12y agoThe best choice depends on your reasons for learning Lisp. If it's to work through Structure and Interpretation of Computer Programs or just learning in general, then Racket is the way to go. Teaching Lisp is embedded in its culture. On the other hand, if you are hard core all day with the JVM, then Clojure. But I would not recommend Clojure as a first Lisp. Its community is very much organized around being a better JVM language, somewhat around teaching people Clojure in that context, and not really around introducing people to Lisp. It's more about providing Lisp to the JVM programmer and JVM to the Common Lisp programmer. As for learning Common Lisp, if you're plan is to work your way through Graham's On Lisp or Hoyte's Let Over Lambda then it makes sense. Of course any of them make sense if it's for work.
- ameoba 12y ago> But I would not recommend Clojure as a first Lisp. Its community is very much organized around being a better JVM language You can say that again. If you don't have a background in Java, it's a lot to swallow.
- zurn 12y agoWhat about ClojureScript?
- brudgers 12y agoI'd never suggest it as a good starting point for learning Lisp. Clojure's design inherits some implementation details from Java and the JVM. ClojureScript has amother layer of limitations based on ECMAscript's specification. They make sense If one understands Clojure as a response to the JVM and has a similar understanding of JavaScript's specification. Without that it's going to be hard to have an intuitive feel for the ways in which it's been ported. And given its lack of standalone documentation the a programmer is even more on their own.
- eudox 12y agoPersonally, I haven't found Clojure to be an improvement over Common Lisp. Java interop is not important to me, so the only benefit of using Clojure over Common Lisp is better-looking library websites.
- patrickmay 12y agoI recommend SBCL when you need excellent math performance and Clozure (not Clojure) CL for a good environment on OS X. You can't go wrong with either.
- aidenn0 12y agoLast I checked, clisp had the best math performance as far as the lisp numeric stack for open-source lisps (obviously something like maxima is different). The best numeric benchmarks for sbcl all seem to be FFI to gmp (which happens to be the library used by clisp).
- pkhuong 12y agoCLISP doesn't use GMP; it has its own, very nice, bignum library. If you want to use GMP on SBCL, the SB-GMP contrib has been around for approximately one year; it'll hook transparently in SBCL's bignums, at runtime. However, I think the grandparent was referring to performance on typical numerical computing workloads: machine integer or floating point arithmetic, mixed with a fair amount of array indexing.
- aidenn0 12y agoAh, that makes a lot of sense; sbcl does a good job of open-coding machine integer arithmetic with fairly minimal type declarations.
- logicchains 12y agoSlightly off-topic, but is clisp still being developed? The last release seems to be from around 2010.
- aidenn0 12y agoLast commit was earlier this month: http://sourceforge.net/p/clisp/clisp/commit_browser http://sourceforge.net/p/clisp/clisp/commit_browser
- 12y ago
- aidenn0 12y agoFYI, your question reads roughly like "I'm not too knowledgable about C, but which should I learn, Java or g++?" There hasn't been a single language called "lisp" for at least 30 years. Lisp is now used to describe an entire family of language based upon syntax similarities. Common Lisp is one language, Clojure is another. Steel Bank is an implementation of Common Lisp (like g++ is an implementation of C++). The two languages are about as similar as C++ and java, that is to say the syntax is quite similar, and they share some conceptual history, but to someone who knows either, the differences are greater than the similarities. Now, to actually answer your question, I use common lisp (mostly SBCL, but also some other implementations) a lot and like it quite a bit. I can suggest http://gigamonkeys.com/book/ http://gigamonkeys.com/book/ as a good start for learning it. Also #lisp or #lispcafe on freenode are good places to ask questions.
- deleted 12y ago[deleted]