Earlier quoted context omitted.
I'd be interested to hear what you don't like about Object.keys or Array#forEach. Not looking to start an argument, just genuinely curious why you prefer a utility library over native methods -- especially in Node, where you have guaranteed ES5 compatibility. Also: self = this can be avoided in a lot of cases with Function#bind, but not always. Seems like a weird criticism to me.
Native methods can be slower than simply using a for (Edit: while) loop: http://allyoucanleet.com/post/21624742336/jsconf-us-12-slide... self = this is error prone because it relies on JavaScript's lexical scope to share a variable across nested functions. It's a gross abuse of closures. It invalidates the ability to bind or use apply later, since everything is bound to that local variable self, and it's simply not n…
lodash is the only one to be performance focused. underscore always uses the native methods when possible.