That's really an interesting project, thanks for sharing!
Now about all the other Clojure features...immutable, persistent collections by default, built-in async library, spec, standardized way of handling state and concurrency, and many more...
I second this, Clojure gives you this both in memory and in the database via Datomic and reasoning about immutable data and pure functions is such a dream. Stateful programming is the worst, once you live in Clojure for a while everything else seems nuts trying to debug what got passed to what and when and what modified what. Such a disaster relatively speaking.
I love that about Clojure: you can just write code in the simplest way when you start, and then you can tweak it to get performance when and where you need it.
Very nice, I've been wanting to get into Clojure, but not having a functional background I've found it hard to jump into anything. This looks easy enough that I could transition in slowly, I think I'll give it a try.
Maybe you’ve never heard about Clojure, but it’s had a huge impact on you how program front-ends regardless.
Redux, immutable data, time travel debugging, hot reloading — all of this has been inspired by the Clojure community.
I wrote an event collector for SnowPlow in Clojure (https://github.com/snowplow/snowplow/tree/master/2-collector...), and really enjoyed the experience. Leiningen is excellent, far better than any other build tool I've used, and Ring and Compojure were both great.
My only grumble with Clojure is that nobody seems to document the types that their functions take and return. It's a PITA having to read through a whole chain of functions just to figure out the types which are passing through it.
Because there's a preference for just passing immutable data around the time travel debugger really helps me understand complex interactions
reply