Data-driven Interfaces on the Web Using Clojure

Accepted Session
Short Form
Scheduled: Thursday, June 28, 2012 from 3:45 – 4:30pm in B201


C2: A declarative visualization library written in Clojure for building interactive, data-driven interfaces on the web


Statistical graphics illuminate by mapping abstract data to visual primitives like dots, lines, and color. Excellent statistical graphics first and foremost show the data. Likewise, the tools for making such graphics should emphasize essential data-visual mappings and hide the implementation details of looping, painting, and layout.

Kevin will discuss C2 a Clojure data visualization library inspired by Mike Bostock’s D3 .
Because it is written in Clojure, C2 can be used server-side on the JVM as well as on the client via ClojureScript, a Clojure-to-JavaScript compiler.

Clojure’s emphasis on immutability allows one to compose functions while retaining the ability to reason about their behavior. These same strengths can be leveraged to build rich, data-driven graphics composed of smaller visual pieces. Kevin will discuss using ClojureScript with a declarative constraint solver to construct and layout statistical graphics on the web.

Speaking experience

I spoke last year at Clojure Conj:

and last week at Clojure/West:

(draft video of me talking over slides: video from the actual talk will be on InfoQ sometime in the next few weeks)

My talk at OSBridge would be closer to the Clojure/West talk, but with more background on the Clojure language itself, and discussion of benefits and costs of using Clojure / ClojureScript compared to plain JavaScript (or CoffeeScript) for making web-based interfaces.

By the time the conference rolls around it's possible I'd be able to demonstrate a rich UI that Keming Labs is developing (and will be open sourcing) for Harvard bioinformatics core.