It is getting easier and easier to write web applications. The web is still growing and the capabilities of browsers keeps expanding. People are demanding more and more from their experience on the web.
Clojure is an excellent language for web development. Ring, on the server, is the perfect balance of spec and code. And now with Clojurescript, we can enjoy the benefits of writing in one language on client and server, just as Node.js claims.
But the Clojurescript adventure is really just starting. Although we have seen many examples and demos written in Clojurescript, we have yet to find the vital point of the DOM and other browser issues the way Ring struck the vital point of web requests. And setting up a decent Clojurescript dev environment can still be a pain. The road will be long but full of excitement. Let’s get to work.
A well-designed site, smooth launch, and enticing video all lend an air of professionalism to this exciting project. And the promise of executing code in the browser from Emacs in Clojurescript is too good to pass up!
Noir is a web framework that makes it pretty easy to get started. It has a leiningen plugin to create a new project. It also has some cool integrations to work with Clojurescript automatically, called Pinot.
There are worse-named libraries out there than ring-clj-params. If you have ever wanted to use serialized Clojure data structures (maps, vecs, etc) instead of JSON, now’s your chance. And with the reader literals available in Clojure 1.4 you can’t go wrong.
This is a Clojurescript data visalization library inspired by d3. d3 was based heavily on mutable state caried around in closures. But c2 is written in Clojure, with all the immutable values baked in. Worth checking out.
Clojurescript is built to be compatible with Closure. Closure is a huge set of libraries and tools that Clojurians have yet to wrap for our own usage. There is a great tutorial and complete (if daunting) api documentation. Let’s get to work mining these depths!