8 ms·
I was surprised to see that Clojure scored better than Scala. Is Scala loosing its appeal? Did Dotty scare people away, because it smells like Python 2 vs 3?
by insulanian 7y ago
I was surprised to see that Clojure scored better than Scala. Is Scala loosing its appeal? Did Dotty scare people away, because it smells like Python 2 vs 3?
- dehrmann 7y agoMy feeling is that between sbt being painfully slow and Java 8 getting lambdas, people lost interest in Scala.
- slimed 7y agoDing
- Fellshard 7y agoThat, and it's one-way interop - calling Scala from Java is a deathly proposition.
- zmmmmm 7y agoFor me this is the bigger problem. With Groovy and to a lesser extent Kotlin I can write code and ship a library and the consumers don't even know it's source is Kotlin. But it's much harder with Scala. Especially with Groovy you are really not leaving the Java ecosystem at all.
- ofrzeta 7y agoMaybe. I just wanted to point out that there's Mill as a build tool for Scala: https://github.com/lihaoyi/mill https://github.com/lihaoyi/mill (by the Scala.js maintainer Li Haoyi)
- saityi 7y agoThe last time I gave Mill a shot, I couldn't find a way to authenticate into private artifactory repositories, which made it kind of a nonstarter. Do you know if this has since been added?
- trumpeta 7y agoI think most of the perceived sbt slowness actually comes from dependency resolution and that's the same for Java and Kotlin
- badtooling 7y agoNo it's not a py2 vs py3 situation at all. It's fud. Scala suffers due to bad tooling. As somebody else said. I'd still urge people to try out scala as a much better typescript (scala.js) for web
- manojlds 7y agoWouldn't Kotlin for JS be that?
- ofrzeta 7y agoWhat's the problem with the Scala plugin for IntelliJ?
- jvican 7y agoIt can often give false positives, but it's mostly okay and lots of people really enjoy it. It has innovated a lot on finding better ways of showing types. It'd be good if the OP elaborates on what "bad tooling" we have in the Scala community given that today Scala's tooling is good and on par with that of Kotlin and Java.
- gbersac 7y agoNo much now (except being slow on weak laptop). Scala Intellij's plugin has dramatically improved over the years.
- lmm 7y agoIt still can't reliably highlight errors. Every version of it either highlights some kinds of working code as being an error, or fails to highlight some kinds of error.
- ofrzeta 7y agoFrom what I understand it's based on a survey. So who knows what are the biases and other preconditions of the results. Also 2.6 and 2.9 percent is not a huge difference.
- insulanian 7y agoI agree it's not a big difference, but I was under the impression (apparently a wrong one) that Scala is at least twice as popular as Clojure.
- iLemming 7y agoClojure is definitely growing. Slowly, steadily, but growing nevertheless. There are more Clojure-specific conferences today than of Haskell, Elixir, OCaml, Elm, Prescript, Racket or Rust. There are more books and podcasts. Last year alone there were new conferences announced in Canada, Brazil, Russia, Ukraine and India. Almost every European country has its own Clojure-conf, some have multiple. Of course it is still much smaller than Java, but Clojure can also be hosted on JS, BEAM or .Net. There's even a way to interop with Python and R. Clojure is one of the nicest [production-ready] languages out there. It's pretty cool what it has achieved, with pretty much zero marketing effort and without support from big companies.
- cryptos 7y agoI think Scala hast lost most of its appeal due to Kotlin. Scala has some really powerful and clean concepts, but tooling is not as good as Kotlin's. Scala has a much steeper learning curve, and Scala code can look very different depending on who wrote it. These are all drawbacks in real world projects. With Kotlin you get like 80 % of the good things from Scala for 20 % the efforts. I've switched from Scala to Kotlin 3 years ago and didn't miss much (real pattern matching come to mind).
- minerals29 7y agoYep, pattern matching is probably one of the main things missing in Kotlin.
- minerals29 7y agoScala is a nice language but I fear it suffers from internal politics between FP purists and people who simply want things getting done with the former pulling their side of the blanket harder and harder. This alone can alienate a portion of people who are not so much into FP language theory. Besides, a significant amount of Scala tooling is outdated or outright abandoned. Look at all those libraries like Breeze, Saddle, Scalalab. I am not even talking about scalaz vs cats drama. And while all this mess is going on, the Scala team keeps working on a new compiler for Scala 3, sigh.
- jvican 7y agoThere's a tension between people using Scala for pure FP and people preferring to opt into pure FP whenever the model domain is needed, or that don't care about tracking every effect in their program and just focus on the 80/20. There are also those that use Scala for data science and other use cases for quick prototyping. The interests of all of these parties are different and that's what sometimes causes tensions, but these tensions do also exist in other programming languages that aim at a broad audience. Just look at Rust. Languages that do not show these tensions are languages owned by only one party (most of the time, a company) and that are the only stewards of the project and those controlling the agenda. The good thing about Scala is that it's flexible and it allows you to use it for your use case regardless of whether the language designers want to support your use case or not. Your claim about Scala tooling being outdated or outright abandoned is not true. There has never been as good tooling as Scala has today, with a lot of innovation happening in the field. The reality is that Scala has really good tooling, on par with that of Kotlin and Java, and sometimes even better. Just look at projects such as Metals, Scalafix, Ammonite, mill, bloop or Scala Steward to get an idea of what I'm talking about. Also, the Scala team is not working on Scala 3, Martin Odersky's team at EPFL --LAMP-- is. The Scala team at Lightbend is working on keeping improving Scala 2 and making sure tooling is still as good as it gets for when Scala 3 is finally released. There are lots of people in the Scala community that are not so much into "FP language theory" or category theory and just see its potential as a cross-platform language to prototype and write robust software.
- minerals29 7y ago
- iLemming 7y agoSo you're easily dismissing the idea that Clojure might have become more mature, ergo more appealing? It's an extremely pragmatic choice, striving for elegance and simplicity, whereas Scala is rather more confusing than straightforward.
- Jach 7y agoMy favorite snarky quote along these lines: "With Scala you feel smart having just got something to work in a beautiful way but when you look around the room to tell your clojure colleague how clever you are, you notice he left 3 hours ago and there is a post-it saying use a Map." --Daniel Worthington-Bodart
- fulafel 7y agoI think it's more about Clojure doing very well than Scala doing badly.