One of the things I dislike about JavaScript is how it intertwines
object-oriented paradigm with functional programming. Ironically, that’s also the
thing that I do like about JS. I like that I have a choice and JS actually does
allow you to write functional code that looks natural (as opposed to Ruby that
doesn’t even have actual functions per se).
However, the standard library in JavaScript is written in a OOP manner, meaning
that you need to call methods on objects instead of using functions. This
creates inconsistency when you write in functional style because you end up with
code that uses both functions end methods: getUsers(ids).map(userToJson)
.
I’d much rather prefer to have a consistent function-oriented code. Lodash,
defining a lot of commonly-used functions, basically provides functional
alternative to JS methods from standard library.