6 ms·
Clojure has only one type. Lux lets you define and declare however many types you want, which is more humane. Clojure is a PITA language where they even have a
by LessDmesg 7y ago
Clojure has only one type. Lux lets you define and declare however many types you want, which is more humane. Clojure is a PITA language where they even have a compiler setting that warns you when the interop with Java requires reflection calls which slow down your code. So get this, Clojure takes away your right to define and see proper types, but it still forces you to declare a half-assed, counter-intuitive version of those types whenever you interop with Java (ie almost always), or your code is going to grind to a standstill. Yet when you deal with other people's Clojure code, you get no types, so it's back to guessing about what their code does. And all of that because Rich Hickey hasn't the slightest understanding of type systems (and I know, I've listened to several of his talks, this without falling asleep).
- capableweb 7y agoI see. I guess we have very different experience with Clojure as I'm not hitting these issues at all, because almost none of the code I write is doing interop with Java itself and I probably write 70% ClojureScript rather than Clojure. I could understand if you want a sound type system, that Clojure is far off from that. Thanks for explaining! I'm guessing you already seen and maybe played around with clojure.spec as well. Do you see it helping anything or it's a lost cause because you want compile-time typing?