Many people have asked me why Clojure has concurrency primitives. Aren’t locks good enough? A humorous metaphor is elaborated.
We write a clean, readable, functional implementation of Moving Average with Lodash.
Object-oriented dispatch is contrasted with functional dispatch, but they are shown to be two one-dimensional projections of the same two-dimensional data. Clojure does not provide the two-dimensional representation, but does interesting things to transcend the one-dimensional views.
The JVM is great but far from perfect. Here are some problems with the JVM that Clojure has to work around.
React provides a better abstraction over the DOM than MVC frameworks ever can. React is the last piece of the puzzle for ClojureScript web frontend development.
There are many classics of functional programming that can help you take your thinking to the next level. My recommendations are for making you think in a new way.