I enjoyed this podcast focusing upon a fellow JVM language. I was distraught to learn that CLJS+Reagent isn’t such a unique snowflake in its approach to wrapping React and providing things like the Figwheel experience and sharing front-back code (which I used to think was only possible with cljc). To be fair, CLJS never actually claimed to be as special as I liked to imagine it was. He also spoke of “fluid typing” for his Scala and Haskell, which sounded identical to our “gradual typing” and spec.
So, as someone who really loves Clojure[script], what are its unique and almost-unique propositions? It sounds like Scala.js might actually be ahead of it in terms of sharing code and leveraging the eco-system.
Some that come to mind as possibilities:
- Google Closure, esp. dead-code elimination.
- Immutable data structures by default
- REPL (no idea if this is a thing with Scala)
- Macros (I don’t use them much, but I know I could)
- Dynamic typing (hotly contested as an advantage, but I assume we at this forum see it as a pro)
- Lisp syntax (same as dynamic typing: take it or leave it as a pro, but I’ll take it)
What would you add, particularly if you know something about Scala work?