Today, many people rightly point to things like Underscore or CoffeeScript and ask if we need
Functional. To be precise, they don’t ask, they criticize, often expressing strong disapproval as is common in our community.
Perhaps if someone wrote this library today we might ask if it solves a new problem or introduces a new way of thinking. Mostly, the answer might be “no.” We might say that the point-free programming offered by string lambdas are a matter of taste, and that libraries like Underscore, Lemonad, or allong.es cover everything else and more besides.
But of course,
Functional is full of hacks and clever implementations of things that really ought to be part of a language itself. Things like currying really ought to be baked into everything as it is done in languages like Haskell. When you use a library like
Functional taught is to ask for them.
Functional seems obsolete today precisely because it did such a good job of teaching us how to think functionally.
This is a very nice tribute, you might be saying, but is there anything “actionable” in this essay? Yes. Having looked backwards, let’s look forwards.
Besides thinking nice thoughts about Oliver Steele, besides picking up Michael’s book and doing more functional programming, we can also ask ourselves, What library today introduces a new idea that may one day become commonplace?
Perhaps when we see that library, we might think of
Functional. We might say to ourselves, “Let’s try this out, let’s see what it teaches us.”