This is a talk from Barcelona FutureJS 2014 (http://futurejs.org).
Surprisingly the high performance mutation available in modern JavaScript engines is a great foundation for building high performance immutable collections. Even more surprisingly efficient immutable collections permit new ways of approaching user interface programming. While the details will be in Om, an immutable user interface toolkit written in ClojureScript over Facebook’s React, the talk will be primarily focused on high level concepts easily ported to JavaScript. We’ll dive in and see how trees of JavaScript arrays can permit building these efficient immutable collections. Then we’ll see how embracing immutable values dramatically simplifies some classic hard problems in client side programming including but not limited to undo, error playback, and online/offline synchronization.
Original source