3 ms·
I didn't enjoy this book; the examples used clojure constructs before introducing what they did making them arcane and difficult to understand, and it focused o
by shadowmint 10y ago
I didn't enjoy this book; the examples used clojure constructs before introducing what they did making them arcane and difficult to understand, and it focused on the language without showing why you would use it or how to use it for real world projects.
It's like... a detailed guide to the language, for people who already know clojure.
I recommend 'Living Clojure' by Carin Meier for new comers.
(Also, avoid the clojure cookbook; it's just a list of 'how to do X' for a bunch of X questions, kind of like a FAQ of best practices; it's in no way an introduction to the language)
Like rust, I feel if you want to push someone into using clojure you have to pitch it at them with more than just 'hey look at this syntax. So functional!'. I know the clojurescript people are all enthusiastic these days, but the strength of clojure is its concurrency and seemless interop with the java ecosystem; if you don't need those, it's just another lisp.
You lose both of those with clojurescript, and I fail to any benefit in it. /shrug
- pjmlp 10y agoThis is why I find Apple's decision to go Swift, despite all the hurdles, is very positive. Sometimes developers are like children, they need to be force feeded their vegetables. You see this specially in the games industry, where language adoption is driven by OS vendor SDKs.
- smnplk 10y agoI agree with you about the book, it's not for everyone. > I know the clojurescript people are all enthusiastic these days, but the strength of clojure is its concurrency and seemless interop with the java ecosystem; if you don't need those, it's just another lisp. You lose both of those with clojurescript, and I fail to any benefit in it. No, it's not just another lisp. There are very compelling reasons why one would chose Clojure even if it didn't have those nice concurrency abstractions. Built in persistent data structures give you the ability to separate values with identities, because of awesome sequence abstraction you usually don't have to care about the exact type of some sequence, the same functions just seem to magically work on all of them, which enables you to think on a higher level, about data streams and transformations. Lazy sequences are also a big benefit, when you want to deal with data that is just too large to fit into memory. Then there are transducers, the decoupling that OO can only dream about. So I beg to differ.