3 ms·
Clojure is a great language. I've used both Clojure and Scala in my personal and professional life. * In refactoring, I almost always make mistakes in Clojure
by blandflakes 8y ago
Clojure is a great language. I've used both Clojure and Scala in my personal and professional life.
* In refactoring, I almost always make mistakes in Clojure that Scala will catch. I feel empowered rather than limited by the Scala compiler 9 times out of 10.
* Homoiconicity makes me feel great, but I find I don't actually miss it (directly) in Scala. That said, Scala has a complex grammar, and I miss the overall consistency of s-expressions.
* I always miss static types. I'd love to try the new spec improvements in Clojure 1.10; debugging mistakes prior to that are a nightmare. I don't need static types to be happy, but I do need real tooling support when things go wrong.
Clojure has a lot of lifting power and I would like to keep using it. I find that once I get past type errors, programs work very well. Why would I spend time getting past those if I don't have to?
- FPGAhacker 8y agoYeah, I agree with this, other than not having used Scala. Static typing communicates intent to the user of your functions, they help you think about the problem before going all-in. Rich presented some new ideas for where he wants to take Spec, but I didn't think anything very new made it into 1.10 regarding spec. Personally I use clojure whenever I can. I can quickly build up a project using the fast and loose data types, and when my conception of the project solidifies, I convert over to records and protocols. That's usually enough to get 80% of the way there. The free and loose ad-hoc data structures get me across the finish line, and it's there that Spec comes into play.
- blandflakes 8y agoYeah I think I was thinking of the error message improvements rather than any changes that are specific to Spec in 1.10.