Data-driven web applications in ClojureScript

Hosted by Clojure PDX

Public group

This is a past event

20 people went

Location image of event venue

Details

Kevin Lynagh (http://keminglabs.com/) will talk to us about data-driven web applications with ClojureScript:

A web page or application is, at its core, just a visual representation of data that people can read, look at, and manipulate. Typically the mapping between the abstract data and elements on the screen is implicit in the code: take some piece of the data, do X here, do Y there; when the user clicks on that thing, modify the page here, and so on.

Reasoning about such code is difficult: either control is inverted across many different callbacks with complected concerns, or one must endure a great deal of ceremony with models, controllers, view models, and views/templates to structure an application. Ideally when we build a web application all we should have to do is describe how our application's data should be represented on the DOM. We shouldn't need to worry about callbacks, twiddling the attributes of particular elements, or updating cached state.

As it turns out, ClojureScript's rich data structures and semantics allows us to easily write such simple, declarative code. I will discuss these ideas using examples from visualization-rich dashboard applications.

Recommended reading:

C2: http://keminglabs.com/c2/
Knockout.js: http://knockoutjs.com/
Rich Hickey's talk on the benefits of immutability: http://www.infoq.com/presentations/Are-We-There-Yet-Rich-Hickey