Clojure never got the data science crowd even though the language is genuinely good for it. Always felt like a distribution problem more than a technical one.
I thought that too before I learned Clojure, now I find them equally readable.
(tc/select-rows ds #(> (% "year") 2008))
is more, or at least as, intuitive as: filter(ds, year > 2008)
as cited above. I think there's a good argument to be made that Clojure's data processing abilities, particularly around immutable data, make a compelling case in spite of the syntax. The REPL is great too, and the JVM is fast. But I still to this day imagine infix comparisons in my head and then mentally move the comparator to the front of the list to make sure I get it right. (filter ds (> year 2008))
That's a trivial Clojure macro to make work if it's what you find "intuitive."There's some historical cruft (especially the memory model), but picking the JVM as a target is a great decision (especially with Graal offering even more options).
Only .NET follows up on it at scale.