This article feels to me really out of date.
Scala3 was launched nearly five years ago, The tooling and lib-support was indeed dodgy back then but works very smoothly now. Scala3 also broke Scala2 macros, and some people whose business-model was selling support for clever libraries built on those macros made a lot of fuss (bad publicity). Meanwhile Scala3 has new more robust macros which work fine.
I develop in scala an interactive climate-scenario model web-app . It’s running the model in your browser (500 years x 250 countries x many gases, sectors, feedbacks etc. - so it’s complex)… The scala code compiles to js (or wasm) -which is what runs this web app - but the same code also compiles with scala-native to run fast batch- calculations or tests. It also compiles to the jvm app like my older java code, but I rarely use this now.
Scala3 code looks more like python than java - minimal brackets, and much nicer to read and higher level than rust.
As for tools I just use Zed editor with Metals for LS, Mill for build, and other libs from the lihaoyi ecosystem, no web ‘frameworks’. Scala is both robust and flexible. In general - if the code compiles, typically it runs correctly first time, if not the very-intelligent compiler identifies precisely what to fix where (very different from so-called ‘AI’). So instead of reams of junk ‘tests’, it’s usually just enough to check whether my climate system plots look and behave as expected - higher level thinking.
As for Kotlin it was effectively a russian-led (at the time) fork of Scala, staying closer to Java - so less flexible, but they did much more systematic marketing - and I suspect some of that deliberately pushed blog posts knocking Scala.
What Scala lacks is promotion, so those following fashions of this hype-driven world won’t find it.
For those who use it, it’s a great language, to do complex stuff that scales robustly.
Yeah, every so often there’s an article like this and tbh it always seems to boil down to ‘i couldn’t get a job in it’ lol. Scala isn’t Java or Go, it’s never gonna have as many open roles as those sorts of languages. Doesn’t feel to me like it’s dying – all the libs I depend on have been available for scala 3 for at least a couple of years now, all the ones that aren’t already so feature complete as to warrant ‘stable’ status get regular updates. Kinda don’t like ppl trash talking my favourite language NGL lol 😂
Also it is literally the best language for refactoring. Omg. Anything is available – macros that fold up so tight you can’t see it’s arse, compile type type witnesses for safe access to partial objects, fuckin’ automatic restructuring of auto-generated code, at compile time, to regex hack in the easy fix for a hard problem. It just so flexible, and you can either use that to prevent bugs by making things stricter, or enable incredible things by doing mad unsafe shit (that’s still safe, because you still have the compiler). Wow. What a language.
This article feels to me really out of date. Scala3 was launched nearly five years ago, The tooling and lib-support was indeed dodgy back then but works very smoothly now. Scala3 also broke Scala2 macros, and some people whose business-model was selling support for clever libraries built on those macros made a lot of fuss (bad publicity). Meanwhile Scala3 has new more robust macros which work fine.
I develop in scala an interactive climate-scenario model web-app . It’s running the model in your browser (500 years x 250 countries x many gases, sectors, feedbacks etc. - so it’s complex)… The scala code compiles to js (or wasm) -which is what runs this web app - but the same code also compiles with scala-native to run fast batch- calculations or tests. It also compiles to the jvm app like my older java code, but I rarely use this now.
Scala3 code looks more like python than java - minimal brackets, and much nicer to read and higher level than rust.
As for tools I just use Zed editor with Metals for LS, Mill for build, and other libs from the lihaoyi ecosystem, no web ‘frameworks’. Scala is both robust and flexible. In general - if the code compiles, typically it runs correctly first time, if not the very-intelligent compiler identifies precisely what to fix where (very different from so-called ‘AI’). So instead of reams of junk ‘tests’, it’s usually just enough to check whether my climate system plots look and behave as expected - higher level thinking.
As for Kotlin it was effectively a russian-led (at the time) fork of Scala, staying closer to Java - so less flexible, but they did much more systematic marketing - and I suspect some of that deliberately pushed blog posts knocking Scala.
What Scala lacks is promotion, so those following fashions of this hype-driven world won’t find it.
For those who use it, it’s a great language, to do complex stuff that scales robustly.
Is it surprising that a “worse” language won, when Scala kept making one strategic blunders after another for more than 10 years?
It’s not as if they didn’t know they were making costly mistakes, they just didn’t care.
Yeah, every so often there’s an article like this and tbh it always seems to boil down to ‘i couldn’t get a job in it’ lol. Scala isn’t Java or Go, it’s never gonna have as many open roles as those sorts of languages. Doesn’t feel to me like it’s dying – all the libs I depend on have been available for scala 3 for at least a couple of years now, all the ones that aren’t already so feature complete as to warrant ‘stable’ status get regular updates. Kinda don’t like ppl trash talking my favourite language NGL lol 😂
Also it is literally the best language for refactoring. Omg. Anything is available – macros that fold up so tight you can’t see it’s arse, compile type type witnesses for safe access to partial objects, fuckin’ automatic restructuring of auto-generated code, at compile time, to regex hack in the easy fix for a hard problem. It just so flexible, and you can either use that to prevent bugs by making things stricter, or enable incredible things by doing mad unsafe shit (that’s still safe, because you still have the compiler). Wow. What a language.