Clojure on Heroku
blog.heroku.com
blog.heroku.com
[Edit: Also, props to the Heroku folk for doing something a bit off the beaten path. I'm sure clojure is lovely, but it wasn't the "obvious" next thing to work on.]
As a guy trying to get on the JVM, the experience of getting up and running with Clojure has been significantly easier and less "fiddly" than trying to get a decent Scala environment set up.
A big part of the problem is that documentation seems to equally point to information for Scala 2.7 and 2.8, and less so for 2.9; but the directions are different for each version. Added to that are the differences between SBT 0.7.x and SBT 0.10.x. It makes it tricky to know what parts of the documentation are still valid and which parts have changed. Then you pick an IDE (Eclipse, IDEA, Emacs w/ Ensime) and figure out what plugins are valid today and what versions of Scala they work with and hope that it all matches up.
With Clojure & emacs it's just a couple of commands to get Clojure installed and have a project correctly set up.
I do like Scala, but there are still many rough edges that aren't helped by the frenetic pace of breaking changes in the ecosystem. I'm sure part of it is that I'm coming to Scala without any substantive Java background.
(For whatever it's worth, emacs with Ensime had the best / most straightforward installation path out of any of the other IDEs)
I don't know the scala ecosystem at all. Does scala have a similar tool that allows you to specify what java/scala libraries you want without actually having to upload said libraries?
FYI (for the curious) you just declare dependencies with npm using package.json. It's easy! http://devcenter.heroku.com/articles/node-js#declare_depende...
* If JRuby got all the nice operational support that Heroku currently gives CRuby, it would be an awesome way to add power to an existing Ruby codebase (run the same code in JRuby, give or take a few gems, start taking advantage of Java libraries or using threads for better throughput).
* Heroku supporting Scala and Clojure could really boost their popularity - AFAIK there's no service for those languages that makes deploying a production-ready, public-facing web app as easy as Heroku does for Ruby.
Update - I guess this quote from the article is relevant, and could indicate a reluctance to support other JVM languages:
Though growing quickly, the Clojure community is small enough to be approachable and accepting of new ideas. This is crucial for a platform like Heroku, which offers a deployment workflow that is a radical departure from that used for server-based deployments. Language communities with heavy investment in traditional deployment methods will be harder to adapt to the Heroku way.
Anyway, definitely a major milestone for the most elegant language of the last 5 years.
Heroku is the only reason I gave Ruby/Sinatra a try for a while. I love the idea of having Heroku-style deployment without giving up Clojure.