Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage Presentations FRP in ClojureScript with Javelin

FRP in ClojureScript with Javelin



Alan Dipert introduces Javelin, a ClojureScript library, demonstrating how it can be used to express a variety of asynchronous workflows in concise and composable ways.


Alan Dipert has contributed to Clojure, ClojureScript, and several Clojure projects including Leiningen and clojure-tco. Alan is a developer at The Fresh Diet, where he builds systems for delivering fresh food to customers across North America. He lives in Durham, North Carolina, where he helps run Splat Space, the local hacker space.

About the conference

Clojure/West is the newest conference creation from Alex Miller (aka @puredanger). Alex has been running the Strange Loop conference in St. Louis since 2009, smashing together the worlds of functional and dynamic programming languages, concurrency, distributed systems, web and mobile. Since early 2010, Alex has also been part of a team using Clojure at Revelytix.

Recorded at:

Jul 16, 2013

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Addendum

    by Alan Dipert,

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Hi, and thanks for watching. I say at least two incorrect or misleading things in the presentation that I wish to clarify:

    • It's entirely possible to build a "classic" FRP system atop Javelin; I say otherwise. In order to implement discrete propagation in any continuous propagation system, one may introduce values like [stamp, val] where stamp is a unique value like a timestamp and val is the value associated with the event. stamp guarantees that the tuple is not equal to whatever tuple preceded it, and propagation will occur regardless of whether or not val is new.

    • Javelin's API is not unprecedented and the idea of the cell macro is only new to ClojureScript. Several Javelin-like systems have been implemented in Common Lisp and Clojure, including:

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p