Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Scala is an amazing language that I've been using professionally for a decade. But it has three major problems:

1) The language is too unstable - something that might seems as a great boon is actually a big problem if you want to use the language for greater periods of time.

2) The tooling around it is not the best - problem with syntax support in IDEs, sbt is still a mess. Compared to modern offerings like Rust or Go it doesn't look that great.

3) Competition is quickly catching up - this isn't 2010-2015, Scala's competitors have been evolving quickly and picking up a lot of FP features (pattern matching HOFs, etc.) that made it stand out but at the same time offering a much bigger developer base, more mature frameworks, etc. A great example of this is modern Java but also Kotlin. Scala is still great but the gap isn't as big as it was a decade ago when Scala's popularity peaked.

And of course it is still hard to find and recruit competent people, especially if you go FP-heavy using Cats/ZIO and not Java+ style. Guess that's why we see less and less new projects written in it (and most of those probably are Spark) and in many companies it's becoming a legacy language waiting for a rewrite to e.g. Java.

"Scala will continue to evolve until morale improves"



> 1) The language is too unstable

Thankfully not anymore. They got their act together and have been maintaining compatibility since Scala 3.0.0 has been released in May 2021, which is almost 4 years and counting.

https://github.com/scala/scala3/releases/tag/3.0.0

Scala 3.x is to remain compatible for the whole 3.x series (think of semantic versioning). There's no Scala 4 (breaking with Scala 3) in sight.

Also, Scala 3 and Scala 2.13 JARs are also compatible with each other, which helped with the transition.

> 2) The tooling around it is not the best

sbt may not be good. But Mill is much better than either Maven or Gradle. Especially Gradle. Bleep is also promising.

Scalafmt is widely used and liked. Scalafix -- the linter/fixer -- is used a bit less, but still of a good quality.


In my opinion the tooling like sbt, scalafmt, ... is actually semi decent, but the LSP is a pain to use.

The only way I'm productive on scala is on Intellij, as soon as I have to even glance at the metals LSP implementation my productivity skydives

This is compounded by the fact that most good AI editors are based on VSCode, which means I either have to suffer through it, or alt-tab to intellij any time I want to edit code




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: