I started programming in 2015, and in summer 2023 I began learning and using Scala for personal projects.
Scala might not be very popular, but IIRC, out of all languages focused on functional programming, it’s still the most popular programming language, which is an achievement by itself.
From a non-professional perspective of someone who is new to Scala, it’s a very simple and complex language at the same time. It’s simple in my opinion because it’s a pleasure to read and write on it and it’s simultaneously elegant and pragmatic in how you can write algorithms. It’s complex because it has a lot of keywords, and many ways to do the same thing (curly braces vs indentation in Scala 3, multi paradigm language that can be used for functional, object-oriented or procedural programming, etc).
It seems to me that a language’s popularity suffers (positively or negatively) from the snowball effect, where there’s an inertia that keeps the most popular languages at the top, until there’s a language that satisfies an urgent necessity.
Functional programming is still a niche, and many times less straightforward than procedural programming. I love making sure at least 90% of my code in Scala is immutable and has no side-effects, while also abusing the hell out of recursive functions and function composition, but I still don’t know what the hell a monad is. Other people might not like the idea of recursion and immutability either.
As for people who are just discovering programming, they tend to hop on the most popular languages first.
I have yet to use SBT on my personal projects, I just prefer to use the compiler directly and manage my stuff manually. I just feel that it’s a bit overwhelming for my projects. For comparison, Rust’s cargo is very simple and straightforward, and it’s not a hassle to use it even for tiny projects.
Kotlin is quite popular in comparison, maybe because it’s more traditional, and so straightforward to get into, but Scala is more fun and interesting, at least to me.