Immutability, interactivity & JavaScript

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.

Related Talks

Making Games at Runtime with Clojure

Zach Oakes
38 minutes
Making Games at Runtime with ClojureGames are a modern art form, and like other artists, game designers need to experience their work as they create it. This talk will explore the benefits of making games "at runtime". Through both abstract discussion and concrete demonstration, we will see why Clojure is uniquely suited to the task. Zach ...

"No, Really... Robots and JavaScript?!"

Raquel Velez
36 minutes
"No, Really... Robots and JavaScript?!"NodeBots have been around for several years now, but with every presentation, there is always someone who asks, "But... JavaScript?! Why on earth would you make robots with JavaScript?" It's a fair question, and one worthy of more than a hand-wavy answer about how it's cool... or something. In this talk, let's ...

Transducers

Rich Hickey
an hour
TransducersPeople keep implementing map, filter and other fundamental algorithms in different contexts - eagerly over collections, over lazy sequences, in parallel, over enumerables/iterables, over observables, over channels/streams etc. In addition to duplication of effort, this yields bloated APIs, and, when implemented in the classic way, often involves the creation of ...

What the heck is the event loop anyway?

Philip Roberts
27 minutes
What the heck is the event loop anyway?JavaScript programmers like to use words like, “event-loop”, “non-blocking”, “callback”, “asynchronous”, “single-threaded” and “concurrency”. We say things like “don’t block the event loop”, “make sure your code runs at 60 frames-per-second”, “well of course, it won’t work, that function is an asynchronous callback!” If you’re anything like me, you nod and agree, ...

The Post JavaScript Apocalypse

Douglas Crockford
an hour
The Post JavaScript ApocalypseThis talk speculates about the next language after JavaScript, and what to do in the mean time about some of the new features in ES6. There will be an emphasis on simplicity and quality. The web is cluttered and full of errors. The talk will also touches on why you should ...

Clojure Library Core.async for Asynchronous Programming

Clojure Library Core.async for Asynchronous ProgrammingIn this talk, we hear from David Nolen from the New York Times about core.async, the new library for asynchronous programming in Clojure and ClojureScript. He'll be talking about Clojure, Communicating Sequential Processes & Responsive Design. This talk was recorded at the NY Clojure Users Group meetup at Two Sigma ...

Is Node.js Better?

Is Node.js Better?How do we resolve the question, "is this better than that?" This talk discusses ideas for improving how we handle conflict in the programming community through the lens of evaluating whether Node.js is better than other technologies like Ruby. ...

The Functional Final Frontier

David Nolen
27 minutes
The Functional Final FrontierThe Model-View-Controller (MVC) approach to user interfaces was first proposed by Trygve Reenskaug in a 1979 Xerox PARC note. As Object Oriented methodologies gained popularity, MVC too gained traction as a natural and logical way to construct user interfaces despite obvious shortcomings. Even though OO researchers moved forward with alternative ...

Netflix JavaScript Talks - Version 7: The Evolution of JavaScript

Netflix JavaScript Talks - Version 7: The Evolution of JavaScriptJafar Husain discusses interesting features that can be used today in JS6, such as Object.observe, async functions and async generators, while also giving a peek at what's being explored for JS7 to make async programming easier. ...

Netflix JavaScript Talks - Async JavaScript with Reactive Extensions

Netflix JavaScript Talks - Async JavaScript with Reactive ExtensionsJafar Husain shares how Netflix uses the Reactive Extensions (Rx) library to build responsive user experiences that strive to be event-driven, scalable and resilient. Learn the power of the Observable and how Netflix has simplified code through the ability to filter, aggregate, compose and project data streams. This talk discusses how ...