This one is quite old, I think the odds have changed
From the top answer by Ngoc Dao:
For me syntactically, Clojure code looks the same everywhere, so it’s harder to capture what is what when reading the code. Scala has richer vocabulary to point out things.
Recently I worked a lot with Duct/Integrant and Fulcro. Both of them rely heavily on data structure. It turns out “having 100 functions operate on one data structure” is a double-edged sword. Yeah, Clojure code looks the same everywhere, which results in high risk of illusion of competence (competence does not necessarily mean your ability to code but also your understanding of the domain you’re trying to apply to). Don’t get me wrong, I am productive with Clojure and the above two frameworks. But at the same time I can see they’re too dense and “low contrast” for newcomers. A seasoned programmer may consider that feature of Clojure “harmony”, but for newcomers its sameness make it harder to master the language (again, the illusion of competence)
I think that’s just due to familiarity.
After having done a lot of Clojure, I find I can no longer understand Java and Scala, because of all the extra declarations interspersed throughout. The code is often split in many files, and much longer. I feel I’m constantly having to search for where the rest of the logic is.
So I think its really just a matter of what you last were familiar with. Which unfortunatly, but truthfully, is Algo like syntaxes such as Java and Scala.
As someone who has worked with both Scala and Clojure – and Groovy and a decade of Java before all of that – I think Scala’s increased popularity over Clojure has a very simple root cause. Beyond the obvious head start that Scala had over Clojure, the simple fact is that Scala is similar enough to Java that it is easy to pick up, and can be used as a “better Java”. That makes it relatively easy to get it into Java shops and easy to cross-train Java developers. And the folks behind Scala have marketed it aggressively to “enterprise Java” shops.
None of that is true for Clojure. It looks alien. It requires developers to unlearn almost everything they’re used to with Java: variables, loops, mutation, encapsulation… And Clojure isn’t being “marketed”: it’s presented quietly and calmly as a better solution for folks who are willing to make the leap. Being popular isn’t a goal for Clojure.
And that’s all fine. Clojure doesn’t need to be “popular”. The overall market is huge so a small slice is fine. Clojure is a hard language to learn unless you’re coming to it without any OOP “baggage” – or you’re willing to invest the time to unlearn that and learn the new way of thinking. We shouldn’t worry about “popularity” – effectiveness is much more important.
Doesn’t it mainly come down to marketing? The Java based CMS system I’ve spend most of my working hours on isn’t that great, but they do have great marketing.
Scala send to do a lot more to market it. Especially in big organisations the choice to start using some language or not seems to be taken mostly based on marketing.
Not sure if that’s really bad, I think it was also mentioned before. I think of Closure is a small, friendly niche, and there is nothing wrong with that.
I’ve used both Clojure and Scala. I prefer the simplicity of Clojure’s syntax and the consistency out of the simplicity. But I have not programmed in either languages significant enough to judge. I’ve always been wondering if Clojure has any convincing cases where Clojure would have much better productivity than the others? Otherwise, it’s just personal or style tastes.
I use both. I think people choose scala over clojure just because of the syntax, Most of people specially younger people don’t have any experience with lisp style syntax and it looks weird to them. But in the other hand scala is more like java and other popular languages and feels natural for them. But in general I found scala too complicate I asked several of my friends to give clojure a try. Most of them argued at first ( of course because the parentheses ) but after they tried the language they actually liked it.
I think that this is quite outdated. Maybe a one or two years ago …but right now I am getting more and more job offers from Clojure then from (even) Python. Most of them are connected with AI or ClojureScript.