top | item 2001398

Which Lisp Variant for Web Dev?

23 points| beambot | 15 years ago | reply

I would like to make a foray into web development using LISP, but am at an impasse: Which variant do I choose? What are the relative merits / resources available for CommonLisp, Scheme, and Clojure?

13 comments

order
[+] evanrmurphy|15 years ago|reply
As JavaScript becomes increasingly ubiquitious thanks to budding frameworks like node.js, the lisp->javascript compilers start to look more interesting. Parenscript [1], Scriptjure [2] and Scheme2Js [3] are the respective projects for Common Lisp, Clojure and Scheme, and they're all relatively mature.

More recently, Jacob Rothstein started Sibilant [4], which I've been collaborating on [5]. The main difference in approach is that we're trying to design a new lisp dialect optimized for the task of writing JavaScript, rather than compiling from an existing lisp dialect that wasn't designed with this purpose in mind. Since it's such a young project, I wouldn't recommend it for production environments now, but you should keep an eye on it if you're interested in this sort of thing.

---

[1] http://common-lisp.net/project/parenscript/

[2] http://www-sop.inria.fr/indes/scheme2js/

[3] https://github.com/arohner/scriptjure

[4] https://github.com/jbr/sibilant

[5] https://github.com/evanrmurphy/sibilant

[+] jbr|15 years ago|reply
Thanks, Evan! I actually disagree about production use, with similar reasoning to Travis Swicegood's answer about coffeescript in production [1]. Since sibilant is just a source-to-source compiler, it's as production-ready as Node.js or client-side javascript is. The output javascript from sibilant is fairly plain and readable and encourages a particular subset of javascript's features. The language is under active development, but Node's API is also changing. I've been hacking on sibilant since late June and believe it to be sufficiently expressive, although it can always get better.

---

[1] http://www.quora.com/Should-I-use-CoffeeScript-for-more-than... .

[+] revorad|15 years ago|reply
This question is asked quite often on HN. Have you tried to search for old posts? http://searchyc.com

Look out for posts from mahmud, smanek, silentbicycle.

[+] beambot|15 years ago|reply
Thanks. Was not familiar with SearchYC.
[+] ferostar|15 years ago|reply
You could give Clojure a try, with Ring (an awesome library) and Compojure (a Sinatra-like framework).
[+] francoisdevlin|15 years ago|reply
This is an area where JVM interop is really nice, too. You can deploy with well tested & documented web servers.
[+] jwr|15 years ago|reply
Clojure if you need to build anything serious. You can't beat its approach to concurrency, easy access to a multitude of Java libraries and the stability and maturity of the JVM as a platform.

Scheme if you want to learn a Lisp and then move on.

I wouldn't suggest Common Lisp (although it pains me to say that, as I've spent a lot of time building webapps with it). It is neither easy to learn nor easy to deploy and maintain in production.

[+] evanrmurphy|15 years ago|reply
> Clojure if you need to build anything serious.

Could you please link to some web apps built in Clojure? I really wanted to use Clojure for web development, but because I couldn't find many existing projects, I kind of concluded that if you really need to build anything serious you should be using Rails.