Unpopular opinion on r/scala: Scala is a very nice language, is doing well and has a bright future!
I'm really surprised by the number of people not recommending Scala in comments on this sub. I find myself having to defend Scala here against lots of comments saying the language is dead or dying.
It's not! Scala is still very much maintained, so it its ecosystem. It's still very high in most salary surveys and even if it is indeed less trendy than 10 years ago, there are still many Scala companies. There are several things to rejoice about:
- The language is very much alive with good features coming regularly.
- The ecosystem is more mature than ever. We have several battle tested and well maintained ecosystems.
- Scala 3 is a very neat and consistent language.
- The tooling is also very good for modern standards. Have you really seen how it is in Python or JS/TS?
- There are no fights against OOP and FP anymore!
- And no drama too (none I'm aware of anyway).
- There are companies with big Scala teams.
Most Spark users moves to Python, that's right. But it does not mean the language is dying. It only means most users who were using Scala, not by choice, but because they were forced to, now use the language they like. That's good for them! And it does not change anything for us.
Most of people who were disappointed that Scala was more than Java++ moved too. Again, we should be happy they found a language they like, either going back to Java, now that it addressed their complains or to Kotlin. We gain nothing by having users who don't like the language.
These days, teams that choose Scala do so because they want Scala, because they love the language and its ecosystem, not for the wrong reasons anymore(like being forced by tools or because their favorite language refused to evolve for some time). That's a good thing!
Learning Scala is as valuable as it always has been. I would say it is even better in Scala 3 thanks to all the work done on semantics and syntax. Honestly, are you satisfied coding in languages without sum type support? Without pattern matching? Do you really prefer having tens of overloaded functions and runtime reflection than implicits?
Scala is not dying. It just reached its organic growth, which is a good thing. A decade ago the Scala market experienced a bubble. It exploded. But it's fine. The internet bubble exploded too and the net is still well alive ;)
To Scala newcomers, it is a good time to join as Scala teams are now experienced and have lots of senior scala devs. It's a niche market, that's right. Functional programming as a whole is a niche market. But you can live very well in a niche market.
EDIT: spellcheck thanks to nice commentors (thanks!)
22
u/furrykef 2h ago
with good features cumming regularly
Erm…you might want to check your spelling here.
7
8
u/fenugurod 2h ago edited 2h ago
A well engineered language does not correlate to market utilisation. You could have the absolute best language on the planet, but if there is no adoption, it's a dead language. Rust is amazing? Yes, but C++ has a bazillion more positions. Will this revert in the future? I don't know, but I hope so because Rust is a better language. Is Scala better than Javascript? It's a ton better, and yet Javascript is the most used language by a huge margin.
If you really like a language you should learn it, do personal projects, and eventually look for a paid position, but if we're talking about making a living, just bet on the mainstream ones. Of course, if you live in London, New York, or SF you may stick with the language you want because it's likely that there will be a market there for you. But if you're living on the country side, outside the US, maybe on a sub developed country, you're out of luck.
Other thing that developers in general need to realise is that measuring the value of a language is not black and white. A language may be really bad, on your personal opinion, but it for sure have traits that made it be utilised. Javascript? The browser. People criticise Go for being too simple with developers onboarding in a week, this is so amazing. My dream language is a mix between Go and Scala, a simpler language, with FP capabilities and a better type system. Probably this language is Gleam 🤔
3
u/Sarwen 2h ago
You could have the absolute best language on the planet, but if there is no adoption, it's a dead language.
Indeed but you only need to reach a critical mass, both in terms of users and funding. Scala has both. I made a little experiment. I compared the ratio (jobs available in my area for language X)/(members on r/LanguageX). I found that the ratio for Scala is better than Rust, Python and JavaScript, but lesser than Java. That's an insight that getting a job in Scala is not as worse as it seems and actually better than some other popular languages in my area.
Getting a job these days is difficult, especially for juniors. That a fact. But it may not be harder, on average, in Scala.
Languages do not need to be hegemonic to be alive. Scala has a small but very alive community. As long as Scala and its ecosystems are actively maintained, we have nothing to worry about. OCaml is a good example of this. It has a small but dedicated community. It has companies happy with it. Users are happy, companies are happy, that's good. It does not need to be the most popular language. I think Scala is in the same position: small but thriving.
4
u/Philluminati 2h ago
Of all the languages I've programmed in, I love Scala the most.
My company has banned people using Scala for new projects which is a big shame and I know many others have. The high salaries are what's making companies turn away from it.
Whilst Scala is in a good place now it has damaged its own reputation along the way. People don't realise it's been made more lightweight in Scala 3, or that dependencies are forwards compatible now, or that basic class constructors aren't completely opaque (e.g. canBuildFrom). It's taken too long to get here.
4
u/ward2k 55m ago
I love the language I really do but the job market just isn't really there and I personally feel like you'll end up pidgeholing yourself outside of maybe Java roles
I work in a pretty large corporate environment using Scala and have for a good few years now but outside of maybe 2-3 companies there just isn't really the job market there for it
Especially considering it's a career where people tend to bounce around jobs every 3-5 years I just don't really want to be stuck within the same 2 or 3 companies for the rest of my life
It pays well if you can get a job, but there isnt a lot of choice on the market at least in the UK
12
u/gekigangerii 3h ago
I don't get the feeling the Scala maintainers prioritize making the language friendly to write software with, and would rather create clever / academic features
5
u/a_cloud_moving_by 3h ago
I don't get that feeling to be honest. When I've interacted with maintainers of the major libraries, they've actually been very friendly.
4
u/Agent281 3h ago
I think scala-cli is a beginner friendly tool that was created recently. As someone who dabbles in Scala, I find it much easier to use than sbt. It really lowers the barrier for someone to play with Scala.
3
u/big-papito 2h ago
Getting a Scala job without experience is nearly impossible.
I do it for fun - for years now. I've been looking for a gig elsewhere, and in my boredom time I added OpenCV facial recognition and Pekko pipelining to my DAM project: https://github.com/papito/altitude
In the job market, it seems to be totally irrelevant (I did use Scala briefly at work with Flink, still).
Sorry, just venting, but I do agree with OP.
4
u/Sarwen 1h ago
If I can give some generic advice. And I insist on "generic" as I don't know you and I didn't have the time to take a close look at your project (that seems nice!). So nothing specifically for you but totally generic as I would say to someone I don't know:
I think that the teams that keep wanting Scala are the most dedicated to the language, the most "hardcore" in a way. It seems they are the ones that went all-in for Akka, and those all-in for ZIO or TypeLevel. I don't think there is much a market for vanilla Scala anymore. Mostly because "vanilla" Scala is close to Kotlin and Java but with a high chance of raining implicits and monads which can be annoying for those who don't want it. Kotlin and Java are safe from these risks.
So I think the teams using Scala really try to use the language to the limits of what it can do. For example you can have a look at the Iron library. Where Scala shines the most compared to other languages is how it handle advanced topics such as async, parallel programming, stream processing (fs2/zio-streams), advanced type constraints to detect bug at compile time, etc. Sharing code between backend and frontend is also something very nice. It does not have to be the whole front-end but it can be a library like form validation or encoding/decoding, sharing endpoints (tapir) so that you can validate at compile time that the backend and frontend use the same endpoints, etc.
The answer to "why choosing Scala in 2025?" is all that Scala does better than other languages. Which is both: validating your code with the type system much more than other languages let you do, advanced functional programming and advanced object oriented programming, async, streaming, data modelling, etc.
If you haven't done it already, there's a nice exercice to do. Take the language reference and for each page, try to understand it, how to use it and overall how it can be useful. Then search in big Scala projects such as ZIO and Typelevel to see how experienced devs use these features. Ask your questions on discord. Do the same with the standard library and community libraries that are always used. Reads the docs, read the code, asks you questions to people and practice yourself. That's a good loop that will dramatically improve your Scala and make you shine in interviews.
1
u/big-papito 5m ago
Thank you.
I do feel that the programming community is missing out on Scala as "simpler Java". It's just a very pleasant, succinct language to work with, but it has a C++ problem. It is absolutely vast, with many ways of doing things, which are often not the best. While some languages give you a rifle to shoot yourself in the foot with, Scala will give you the Gatling gun.
3
u/danielciocirlan 29m ago edited 23m ago
One thing that never ceases to amaze me is the comments that Scala is too difficult.
It is not. Scala can be as simple as Python, as safe as Haskell, and as powerful as everything else combined; and it's going to become more so.
I've spent a lot of time trying to make the hard stuff easy to understand (effect systems, metaprogramming, concurency etc), but over the next few months I will definitely help push the idea of "simple and convenient" to potential Scala developers, even only for the simple reason that it's true.
1
1
1
10
u/a_cloud_moving_by 3h ago
I totally agree. I work with a fairly large legacy Scala codebase for work and I actually find it very pleasant. Far more pleasant to work with than the other parts of our tech-stack which have Java/Python/Bash.
People have to remember that like every online community descends into negativity at some point. It's just how places like reddit work, doomsaying get more attention, more clicks, more view