Brian Lonsdorf has a love-hate relationship with Underscore.js. Yes, it offers a bunch of tools included in today's functional programming paradigm (like map, filter, reduce, take, drop, compose, etc.), but in Underscore the functions are sometimes verbose and unintuitive. It claims to be a functional programming language, but how true is that?
Despite certain characteristics, Brian offers some solutions for using Underscore productively. He plays a bit of catchup for the functional programming newbie, but then dives into the denser more theoretical concepts.