ruby javascript inspirational browser software architecture programming languages iot performance

Transducers FTW!

Massimiliano Mantione · Full Stack Fest 2015

Over time we have seen several “utility” frameworks for dealing with Javascript data structures and processing abstractions. It all started simple with [Underscode](http://underscorejs.org/), became more functional with [Lodash](https://lodash.com/), evolved again with [Ramda](http://ramdajs.com/), but it got a bit messy when developers looked for a way out of callback hell (generally through promises or one of the *reactive* frameworks like Rx, Bacon, Highland, Kefir…). Then the Clojure world brought us [transducers] (http://blog.cognitect.com/blog/2014/8/6/transducers-are-coming). They redefine the “processing a sequence” concept encompassing the usual “map”, “reduce”, and “filter” functions, and can be applied to both synchronous and asynchronous computations. In this talk we will see how to use them in Javascript (mostly through [Underarm](http://simplectic.com/projects/underarm/) and their integration in [Ramda](http://ramdajs.com/)), and especially how they can help you producing better code.