Hacker News new | ask | show | jobs
by golergka 3695 days ago
Learning Scheme with SICP right now, and there's a question I'm now pondering: how does one choose between Common Lisp, Scheme, Racket, Clojure and others? Is there a good comparison of Lisp-derived languages somewhere?
2 comments

Stick with Scheme for SICP.

As for the other Lisps, I think you should give them all a lengthy and serious try. It's worth it.

For Common Lisp, when you have learnt it a bit, get the book Let over Lambda. It's a great bus-ride read and, IMHO, is one of the best Lisp books I've read.

When you get to Clojure, don't be put off by the JVM and the harsh stack traces and unhelpful error messages. Look at the Rich Hickey video presentations and realize Clojure is its own thing. There are lots of smart and practical choices made in Clojure.

I've not had time to give Racket a try yet. But it seems a very nice language with good implementation, docs and community.

There are many comparisons online, but opinions are cheap, so I will offer mine.

For SICP, stick to Scheme. The ideas are valuable in themselves, and IME it’s easier to learn the author’s obscure language than to translate to another language. When you’re struggling to learn something, I prefer not to waste time figuring out whether it’s not working because it wasn’t translated properly or because I made a mistake in the procedure. Especially when SICP uses Scheme’s tail call optimization, which few other Lisps have. Racket is one of the few.

Other than that, it’s just a matter of personal taste and practical considerations. I especially like how Clojure and ClojureScript run well on dominant legacy platforms, the JVM and the browser, but you could choose otherwise.