5 ms·
This link compares search volume for Scala, Rust, and Kotlin for past 12 months in U.S. https://trends.google.com/trends/explore?geo=US&q=%2Fm%2F091hdj,%2Fm%2F
by spir 8y ago
This link compares search volume for Scala, Rust, and Kotlin for past 12 months in U.S.
https://trends.google.com/trends/explore?geo=US&q=%2Fm%2F091hdj,%2Fm%2F0dsbpg6,%2Fm%2F0_lcrx4 https://trends.google.com/trends/explore?geo=US&q=%2Fm%2F091...
(Scala wins by a large margin!)
Awhile ago I chose Scala for a multi-year side project. I love writing Scala. I think the Scala community is quietly productive and mostly talks to themselves.
I'm not a Scala expert by any means, but I have have been programming for awhile and appreciate the power and terseness that comes out of my Scala code. It feels like I have more time to design well because I needn't write so much code :P.
Going to attempt a good/bad/ugly for Scala...
Good:
- Scala ecosystem very much under active development. Scala 3.0, compilation speed improvements, popular libraries updated regularly, IDE integration (VSC is recommended right now I think)
- Powerful. Scala's type system is relatively advanced. If used properly I think this can reduce bugs and cost of maintenance and new features.
- Fast and portable. jvm!
Bad:
- Scala's relatively slow compilation reduces cycle time, but I find often this is mitigated by confidence in the code I'm writing, so I don't often need to stop and run it to ensure correctness.
- Very high learning curve to wield the power effectively. Scala is an ecosystem that demands commitment. For example, sometimes I feel like I'm missing the requisite PhD to get the sbt build tool working properly.
Ugly:
- Due to Scala's power and high learning curve, a few failure modes may occur that make Scala impractical for many real-world software teams: Scala/functional experts can write a "Russian doll" of abstractions that's hard for someone less experienced to decipher, code review, or maintain; new team members who are also new to Scala/functional may have to ramp up with both business/codebase and functional concepts; and Scala gives you so many different "ways" to solve the same problem that code styles may diverge even in a small team, increasing cost and risk.
Overall I really love Scala, am looking forward to Scala 3.0, and intend to use it for many years, especially for projects with small, experienced teams where Scala's power and learning curve is an asset and not a liability.
- kotrunga 8y agoJust for comparison... see the same query, with Go and JavaScript added in. https://trends.google.com/trends/explore?geo=US&q=%2Fm%2F091hdj,%2Fm%2F0dsbpg6,%2Fm%2F0_lcrx4,%2Fm%2F09gbxjr,%2Fm%2F02p97 https://trends.google.com/trends/explore?geo=US&q=%2Fm%2F091... I'd like to learn Scala too. At the moment it's definitely not as prevalent as other languages, but it's higher than emerging languages, which I think was @spir's goal. I didn't add this to invalidate the parent comment; just to add another view.
- TomVDB 8y agoOne the things I really don’t like about Scala is yet-another-obscure-build system. I’m forced to use sbt and I don’t like it. And from my reading of my Scala book, the scala compiler is running in some kind of daemon or server instead of a stand-alone compile? I hate it when so much stuff happens in the background and you can’t figure out what it is.
- papaf 8y agoI’m forced to use abt and I don’t like it. You don't have to use SBT. Maven works fine with Scala and is quite mainstream.
- dikei 8y agoYou're not forced to use sbt, it just happened that sbt is the fastest/most reliable way to compile scala code. Maven can compile scala just fine, albeit a little bit slower since it has to spawn a new instance of scala compiler each time. The scala compiler is stand-alone, all deamon/server implementations are just workaround to speed up build for any build systems other than sbt.