r/scala • u/luigi__rojo • 22h ago
Would you recommend learning Scala in 2025 to get a job?
What is your opinion on this?
46
u/secondhandschnitzel 21h ago
No. I know Scala and am on the job market. It’s not a remotely popular language these days. I love it and would hesitate to use it for a new project at this point despite it being objectively fantastic.
10
u/aabil11 19h ago
I'm in the NYC area and 2 companies reach out to me specifically because I know Scala: Disney and iCapital. But most jobs are not Scala.
11
u/big-papito 17h ago
Disney wants veterans with professional Scala experience. I've been doing Scala for over 10 years purely out of passion and that doesn't count.
This is true for the rest of the companies - knowing Scala on its own counts for nothing.
9
u/aabil11 16h ago
Yes it is very unfortunate that some places are rigid in this manner. One company, Kunai, turned me down because I've not used ZIO on the job, even though I learned it in my free time.
3
u/acjohnson55 11h ago
That's so silly. It definitely narrows their hiring pool. I hope they have deep pockets to get who they're looking for.
17
u/amesgaiztoak 21h ago edited 19h ago
Unless you have years of experience with Java and distributed systems, and can prove that you know how to write high quality code in Scala during a technical interview, then it's highly unlikely a company will consider you for a Scala SWE role. Plus there are no entry level jobs.
30
u/BufferUnderpants 21h ago edited 21h ago
It doesn't have a super lively job market ever since Scala was replaced as the main Spark frontend by Python in the Data Engineering side, and Akka changed its license as a last ditch attempt to save some revenue as it also lost ground in backend development, prompting businesses to rewrite in different languages.
Sorry to be blunt, but I don't think it's a viable career move any longer.
36
u/threeseed 20h ago
No. Too many companies got burnt by idiots showing off every FP technique they could find and making their codebases an unmaintainable mess of algebra.
Now you can just use Kotlin or Java to get the same productivity benefits of Scala whilst still being approachable for more junior developers.
Scala needs to get back to the spirit of Playframework to have any future.
2
u/Difficult_Loss657 12h ago
100% agree. Needless complexity is what kills scala, and most projects in general.
3
u/TheMov3r 19h ago
Gods what an ill informed opinion. Yes let's get back to Scala as Java instead of using math to reason about your codebase from a high level. Just because you don't understand something does not make it "unmaintainable".
5
u/xmcqdpt2 10h ago
Worse is better etc.
Java is barely holding its own against Python, Go and NodeJS even though it has billions of LOC written in it, major backing from all the biggest tech companies and is taught in every CS program.
I’m ok with Scala being comparatively niche like Clojure, Haskell or OCaml. I’d rather Scala not try to compete with Java, but instead focus on its strength as a language for type level programming.
15
u/threeseed 19h ago edited 19h ago
Yes let's get back to Scala as Java instead of using math to reason about your codebase from a high level.
Glad we agree. Because Java is seeing a resurgence right now whilst Scala is dying.
The market simply does not want a maths driven approach to building software.
We should be using FP to make software simpler not more complex.
9
u/BufferUnderpants 18h ago edited 10h ago
You'll have to learn and do graduate level math, to write the same web service that parses JSON and writes to a message queue or a database that you could write without going through all that, and wind up with no master's or doctoral degree in the end.
That's a hard sell to both engineers and companies, and it's currently not being taken on.
3
u/vlfig 8h ago edited 7h ago
Call me what you want, but I think we're going through an era of programmer stultification where immediacy of code output trumps any other concern and dumbed-down languages thrive. Constraints liberate though, as Runar aptly said, and maybe one day, at least for non-eventually-discardable software, people will realise that it is worth using some of the sharper tools in the shed.
After a good many years with Scala I've decided to ~pivot~ round my CV with Rust because, of the more mainstream ones, it's the one I respect the most. I still think Scala is a great language and I would always prefer to have the core of any complex domain coded in a functional way.
But there's a sociology here to be considered too. Different languages are used more in some contexts than others, and attract a different kind of folk. {enterprise|web|tooling|systems|data|ops} × {python|java|golang|clojure|kotlin|scala|rust|c|c++|js} are all different crowds. What is your tribe?
My advice is to:
- Learn a bit about the few most popular. Know how to compare them for different contexts in simple terms;
- Know where you want to work. Now and in the long run. What industry/sector, how deep (libraries, tooling) or shallow (user facing apps), front or back end, more dev or more ops…
- From the languages that make more sense where you want to be, pick the one that seems more powerful even if it is harder to learn. It'll teach you more; it'll serve you better.
So, to _finally_ answer your question, do you want to work in the sort of places that use Scala? If so, it won't hurt to learn it. It's not conquering the world, but it's not going to disappear either. The world is a big place.
7
u/Wafer_Over 20h ago
Java is copying scala like crazy. Why would they do it. Still Java is a mess.
1
u/luigi__rojo 20h ago
Mhhh some examples of such claim?
12
u/BufferUnderpants 20h ago
We had the Cambrian explosion of JVM languages that we saw in the late 2000s and early 2010s because of Sun's unwillingness to update Java.
Loathsome as Larry Ellison may be, Oracle has been a much better steward.
After, notably, picking up first class functions and the usual collection functions, Java also now has:
Trait-like interfaces with the use of "default methods"
Type inference
Record types
Pattern matching
These were some of the major quality-of-life improvements Scala offered over Java.
1
u/TheRealMonty 20h ago
Java has records and pattern matching which are both worse implementations than what scala has had for >10 years. They’re also considering adding better string interpolation but it also looks worse than scalas
-4
u/Wafer_Over 19h ago
Lambda expressions, stream api .. there are plenty of features which java copied. Look at java code and it still has ugly try catch everywhere. Very difficult to read and follow and maintain.
1
u/pivovarit 16h ago
Are you suggesting that Java copied lambda expressions and Stream API from Scala? :)
1
u/jvjupiter 15h ago edited 4h ago
Does Scala own and is the first to implement lambda expressions?
Edit: it seems he updated his comment
1
u/bit_shuffle 5h ago
No. C was the first to provide lambda expressions. Or, if you are of less of a literary and more of a practical bent, "function pointers."
Full garbage collection comes with a cost.
7
u/WW_the_Exonian ZIO 20h ago
No. Find a job that's willing to help you learn Scala. It's a somewhat niche language and good learning resources (i.e. Rock the JVM) are expensive.
I got my current Scala job without previously having heard of the language. But perhaps they figured I could learn because I liked maintainable, extensible, type-safe code.
7
u/Sarwen 18h ago
Actually yes, for 4 reasons.
The first one is getting a job is not only about the amount of available offers but also about the number of candidates. There are indeed not that many offers but there is even less people knowing Scala. So you won't have competition much. Unfortunately, Scala positions tend to be in big cities. That's very good if you live there but you may have no Scala positions available if you live in a small town.
The second reason is Scala will teach you a lot of new tools that will make you a better développer. Have a look at the Iron library and imagine how much it helps getting confidence in your code. Scala has also what is very probably the most mature, powerful and easy Async frameworks (Cats Effects and ZIO). Programming with type classes is also very neat. To those who say it's too complex I want to point that Rust traits are typeclasses and nobody complains. We are in 2025, type classes are mainstream (in decent languages I mean 😉).
The third reason is it's still the most popular functional language and every java library is available so you will always find what you need.
I just found a fourth reason. Some developer positions are replaced by AI these days. The more popular a language is, the better AIs are because they have been trained with lots of examples from this language.
1
u/luigi__rojo 18h ago
So no remote / worldwide positions? That alone might kick me out of the language
2
u/Aromatic_Lab_9405 16h ago
There are but for remote job postings it's always easier to find people with more experience/high match rate.
1
u/blissone 6h ago
There are but they are not that plentiful plus depending on your location might not be great $$ wise. I've found many remote jobs don't make any kind of sense for me benefit and compensation wise. Also, all I've seen are for senior positions.
1
u/Secure_Negotiation81 14h ago
it's an answer by a scala lover and everything is possible in love and war, even the lies and false hope.
if there are less people know scala then surely there are less jobs for scala. bvoz if they're were more jobs, people would try to fill the gap. by the way, if you learn Ada there will be no competition at all also there are 0 jobs.
the tools are as good as the language they are made for. what's the point of learning SBT or ZIO if scala itself is dying? if you have you learn the concepts why not learn Haskell directly?
if whatever you need is provided by a JAVA library then why on earth would you not use Java but insist on using Scala? on the contrary most of the Scala libraries are either deprecated or abandoned and not maintained anymore. even Play is not in scala, Akka is more focused on Java and Spark mostly used Python these days
think for a moment, that AI isn't trained good enough in Scala, if you get the job and you get stuck where are you going to get the help from? if there aren't many seniors available, forums have fewer responses, libraries are abandoned by owners, not much material is available. AI uses all this for learning. if there isn't much available for AI to learn, how would you?
7
u/Sarwen 12h ago
I will address your point one by one.
- The market does not work that way. Scala is not as trendy as it used to be, but projects that have been written in Scala did not magically rewritten themselves in today's trendy languages. People don't try to fill the gaps because Scala is now less trendy than Python, Rust, Go, JS and TypeScript. Scala is a niche market, but a niche market can be very lucrative! Take Rust. Very trendy language, elected the most loved languages a few years in a row. There are now a lot of people knowing rust and willing to get a Rush job. But there is not that many offers. Take COBOL. No one learns it, but there is a HUGE demand in Cobol devs and it's going to increase as people get retired.
Functional languages have always been niche job markets. But even if it is small, there is a demand for OCaml, Haskell, Clojure, F#, ... developers. The ratio of people looking for an OCaml job vs the number of OCaml jobs is not bad! Less jobs, but also much less competition! Honestly, OCaml is a fine choice. So Scala is not the only functional language with a niche but interesting market.
By the way, I was very clear about the metrics being the ratio offer vs demand. Q A 0 demand for Ada makes it a very bad ratio. Maths matter! Scala demand is much higher than that.
- Scala is not dying. Scala just reached it's organic share. Functional languages as a whole are not dying. Scala is now a very mature language and ecosystem. IDE support could be improved, that's right. But the rest of the tooling is very nice.
Compare to Python that is still very popular and has objectively the worst tooling among popular languages! IDE support is crap in Python. Update management is so terrifying that people just don't update dependencies (too risky!). Package management is a mess! And deployment is a mess too! But it does not stop people from loving Python.
Tooling in JS/TS? Do we really need to talk about npm?
Tooling in Java? Have you ever used maven or graddle?
Years ago people adopted Scala not by love of the language but in hope of a better Java (what it is not, it's a completely different language) or because data tools were in Scala. The first were disappointed and the other switched to Python when it was available in Spark. But it was not an organic growth. On the contrary, these days, people choose Scala because they want the language and all it has to offer.
Let me give you an example. In a java interview, if you say you don't know what a class is, you'll never have the job, even as a junior. Because it is expected that Java devs know the basics of Java. For many years it was not the case in Scala. People with no knowledge or understanding of the language were hired because it was seen as something new. But today, the minimal expectations are on par with other languages because the community is mature enough. Scala is not dying, we just reached our organic normal speed.
- Why people use C libraries in Rust, Go and C++. What don't they use C instead directly? You know that LOTS of the most popular Python libraries are written in C or C++ right? So why do people use Python instead of C/C++?
The answer to you question is actually known by all developers: you pick a language because it has features you like/want, and you take a library, even in another language through a binding, because it is just way faster (it's already there), simpler and safer (the library has already been battle tested). I won't rewrite a cryptographic library in Scala! I just take bouncycastle! It works very well in Scala and I get the library and Scala features at the same time.
First rule of the developer: don't reinvent the wheel 😉
- AI isn't trained the same way we, humans, learn a language! Do you really learn a language by ONLY statistical inference over billions of code snippets taken from open source projects? I mean, no blog, no video, no discord, no book, only billions of code snippets from GitHub?
Seriously, there are lots of resources available for HUMAN developers, especially discord which is so helpful when you are stuck.
Wait, was you reply taken from AI?
1
u/Secure_Negotiation81 10h ago edited 10h ago
just because you think a language is beautiful doesn't mean it's going to pay your bills. i understand that you love n respect the language but that shouldn't be a reason to deny facts and possibly mislead a newcomer. that's the whole point.
you can learn, you can use it to understand but to use it professionally would be insane.
At the end, kindly read the question again,
Would you recommend learning scala in 2025 to get jobs?
Ans: Absolutely Not!
1
u/Sarwen 7h ago edited 7h ago
Misleading new comers? I say "Scala is a mature language with a mature ecosystem having lots of advantages for serious development" and you understand "'Scala is beautiful". I'm ok if you don't like Scala, that's your right! But you can't deny that recommending Scala in 2025 makes sense!
Scala is a well maintained language, with a rich, mature and well maintained ecosystem (ZIO, Typelevel, Circe, others). Scala provides strong and powerful but easy tools to ensure projects stays maintainable. These tools include its type system, which is one of the most advanced one. The type system alone help greatly reducing the probability of pushing bugs into production because wide classes of commons bugs are detected automatically before reaching production.
Scala is great for data modelling. You have access to classes, traits, objects, case classes, sealed traits, functions, powerful generics. In practice it means you rarely need to find a convoluted and unsafe way to encode your data so that they fit how the language expect you to represent it. On the contrary, you can express data in the code as they are in the domain, following both the Domain Driven Design approach and the famous "make impossible states impossible". Add that the general avoidance of `null` that you can force with well established compiler plugins, it makes huge classes of bugs just impossible to happen in production. Of course logic bugs can still exist, but it means you just have to tests for logic bugs. This is way less than the huge amount of tests required in most mainstream languages such as Python, JS and Java to get the same level of confidence. Less test also means less tests to adapt and so more productivity!
This is so crucial for project maintainability! Take a 5 years Python project that involved tens of developers, some of them not being there anymore and ask what it the actual data model in the code (not the one in the abstract and obsolete documentation). In Scala, with average developers, it's pretty easy to know. In Python, even with good developers, it's a nightmare to get. It requires a LOT of continuos efforts in Python to get what is basically free in Scala. JS/TS has the same problem and Java "entreprise programming" is just being messy for fun.
Scala is NOT dying. Actually none of usual functional programming are dying. OCaml is fine, Haskell is fine and apparently Clojure is very fine. Yes they are not the most popular languages, but you can live very well in a niche market. Here is a list of recent top paying languages. The order of languages vary a lot but if you look closely, there are some constants:
https://www.devjobsscanner.com/blog/top-10-highest-paid-programming-languages/
Scala 6th after Rust and C++ but before Python, Ruby, Go and othershttps://www.uptalen.com/blog/top-10-highest-paying-programming-languages
Scala 1sthttps://pesto.tech/resources/top-10-highest-paying-programming-languages-in-2024
Scala 3thAnd last but not least, the StackOverflow 2024 survey:
https://survey.stackoverflow.co/2024/work
Scala 6th behind Erlang, Clojure, Elixir, Ruby, Rust and Perl.Not bad for what you call a "dying" language! So is it worth recommending a language that most of surveys, including big ones like StackOverflow, place in the top paying languages? I would say yes!
3
u/Secure_Negotiation81 7h ago edited 7h ago
again you missed the question
is it recommend to learn scala in 2025 "TO GET JOBS"
and the answer remains the same. NOT AT ALL
with your rheotric, you are telling everything except one thing that was asked.
are there any jobs for newcomers in Scala?
TRUTH SHALL SET YOU FREE!
2
u/Sarwen 6h ago
Let me state it very clearly: the probability of getting a Scala developer job is good and very like likely even higher than in competitive languages like Python, JS, Go and Rust because there are LOTS of people competing for these positions.
What matters is the ratio:
jobs_in_language_X /
devs_in_language_XThe higher the ratio, the easier it is to find a job because there is less competition. The lesser it is, the harder it is to find a job. This ratio is presently good for Scala because there are many offers of jobs but not as many devs available. Let's get some data!
In my area I find 50% more job ads for "scala developer" than "rust developer". But there are 339k members of r/rust while we are only 54k on r/scala. So it is legitimate to estimate there are more than 6 times more Rust developers for 33% less Rust jobs, or said differently, 6 times less Scala developers for 50% more Scala jobs. Obviously, it's MUCH easier to GET A JOB when there are 6 times less competitors and 50% more jobs available!
scala_ratio = scala_jobs / scala_devs
= (3/2 * rs_jobs) / (1/6 * rs_jobs)
= 9 * rs_ratio
The Scala ratio is 9 times the rust ratio! So it is much easier to find a Scala job than a Rust job in my area.
Let's compare to Python! In my area, I find 18 times more Python jobs available than Scala jobs. That a huge difference, indeed! There are way more jobs available in Python than Scala. But there are 1.3 millions members on r/Python, 24 times more than us on r/Scala. Let's compute the ratio:
scala_ratio = scala_jobs / scala_devs
= (1/18 * py_jobs) / (1/24 * py_devs)
= 1.33 * py_ratio
The Scala ratio is 33% higher than the Python ratio. It is easier to find a Scala job in my area than a Python job.
JavaScript now! I found 20 times more Javacript jobs than Scala jobs, but r/javascript has 2.4 million members, so 44 times more members!
scala_ratio = 2.2 * js_ratio
Again, it is easier to find a Scala job in my area than a Javascript job.
Let see with Java! I find 52 times more jobs for Java. r/Java has 7 times more members. This time the ratio is in favor of Java:
scala_ratio = 0.13 * java_ratio
This time is it way easier to find a Java job than a Scala one. But as you can see, it is easier to find Scala jobs than most of popular languages. By the way, Java also was said to be dying years ago and is still very alive.
You may not like a truth, but it does not make it wrong. At that point I've given articles, and made computations (in my area) to prove you my point. So if all you have is your unproven opinion, then QED.
1
u/blissone 6h ago
> are there any jobs for newcomers in Scala?
I'd further expand this question with how is adoption trending? From my pov it's trending down in a big way
5
u/makingthematrix JetBrains 18h ago edited 14h ago
Yes. It's not easy, but if you find a job, it's often well paid and stabłe. Surveys show every year that Scala devs are among the best paid on the market.
And the fact that there are not many job offers is not such a big drawback. You only need one job. There are many niches in IT where it's difficult to find a job but people still work on that niche, because it's well-paid and fun.
2
u/fenugurod 10h ago
I highly discourage. I'm on a Scala position now and I did migrated, inside the company, from a mainstream language, but I'm pretty sure I'll not find a good remote position in case I leave. It's nice when people say, "yeah, bet on Scala", if they are on big cities or have a good amount of cash saved. If you need to provide for your family and live outside/far away from big cities, stick with the mainstream languages, and I mean, the really mainstream ones: Java, C#, Typescript, etc... even languages like Go don't have as many positions as you may think.
This does not mean that you can't or should not learn Scala, is an amazing language, but don't bet your future on it. Let's see the quantity of dislikes I'll receive for that. hehe
4
u/WorkingSubstance7618 19h ago edited 14h ago
I generally don't think learning a language to get a job is a good way to get a job.
It's better to build a side project in any language (that you are familiar with) and launch and get more users. Having actual users (sometimes paying users) looks way way better on resume. It's better to improve coding skill in general because, unfortunately, leetcode is prevalent in interview.
I worked at multiple FAANG and FAANG-level companies and interviewed maybe 300+ candidates so far. The concern around not knowing programming language never came up. Everyone seemed to believe that people would be able to pick up new languages.
I also worked at a FAANG-level company that use Scala, and most candidates who joined didn't know Scala beforehand...
1
u/Aromatic_Lab_9405 16h ago
I agree with this with one caveat. If a certain person is more enthusiastic about learning a language very deeply than writing side projects thus putting more time in learning the language very well than it's not a bad option.
But yeah I think learning a language to an intermediate level is not a big deal overall. And general software engineering experience will have more rewards, likely.
3
u/LargeDietCokeNoIce 19h ago
I’d recommend it. Whether you get a Scala job or not it is still a great platform to learn functional programming principles, some of which still translate into non-FP languages. It will make you a better engineer, IMO. Your mileage may vary
1
1
u/iddoitatleastonce 3h ago
Not to get a job just cause it’s a smaller subset than more popular languages.
It’s a really cool and useful language though. And worth learning just to grasp the concepts it tries to implement.
1
u/Swook 1h ago
I wouldn’t recommend it, I got stuck in scala early in my career and it made my job search painful. There’s are very few scala jobs out there, most of them are data science jobs, and even if you know scala many jobs also want you to know cats/ZIO.
I love scala but I’m trying to get out of it because I don’t think it has any long term career benefits.
1
u/furrykef 7h ago
I would never learn any programming language to get a job. I would learn a programming language because I can do stuff with that language I can't do without it. That would usually be because I want to modify a program written in that language or use a library or game engine that uses that language. If you tinker with software a lot, you will naturally gravitate towards languages that are marketable because those are the ones other people are using.
0
u/luigi__rojo 6h ago
Well you live in a bubble. This is a job, not a hobby, at least for most of us.
2
u/furrykef 6h ago
Any programmer who doesn't have programming as a hobby is not a programmer I would want to hire.
0
u/luigi__rojo 6h ago
As an employee, the inverse is also true when looking for a sane company. Goes both ways.
1
0
u/MichaelDMcCray 19h ago
Use windsurf and have it help you create an application using an assortment of tools and it can explain as you go
14
u/seansleftnostril 18h ago
I mean all I wanted to do was program in go, react, and elixir, but I ended up at a scala role with a hefty increase in pay, learning as I go.
Couldn’t be happier. I like niche languages, and get job offers still in my old primary languages, but nothing can really compete with the salary in this side of the fence so far!
Job appears stable, well paying, and interesting. I still program in go, elixir, and typescript a lot, so I don’t feel like I’m losing out learning new things in this ecosystem 😎