Most of the time open source tools are a labor of love. If the tool is not for you, move on. But self-aggrandizing "this tool is not good enough for me" posts, when you have not contributed, and when you disregard the fact that the tool has been immensely helpful to many others (who might have even started contributing back) just creates negativity in the world for no good reason. Nothing good is created in posts like that (and no, such posts are not constructive critique).
And then there are "the language is dying" complaints -- I consider these the worst of all. A tool does not need to be the most popular tool to be useful. Let's stop chasing hockey-stick curves in all human endeavors.
(to prevent claims of sour grapes: I am not a Scala user, I just find this type of posts distasteful, no matter the target)
A vast majority of posts and comments here shows a classic case of consumerism. I want this. I want that. This sucks. That sucks. Well, what are you bringing to the community?
There is this weird kind of amnesia with open source tools where people forget that these open source projects are a labor of love by small communities. They are developing the projects for themselves, their community. Are you part of that community or are you outside it? If you're outside the community, it shouldn't surprise you when the tool doesn't perfectly work for you. I sometimes feel that many of these people would be better off buying commercial tools and pay for support.
And I have a similar opinion of comments like yours critizing the post from a person that explains their personal feelings, opinions and judgements about a piece of tech.
If you feel personally attacked when reading criticism about a lenguage/ecosystem you love take into account that people have different ways to think about programming.
You like a language that is the epitome of "more is more" and there are some people that prefer "less is more".
> Small but fragmented ecosystem
You may contribute more! Also, with a language like Scala you don't need that many things readily available, you may just create them yourself tailored to your needs, Scala is expressive enough to be your framework on its own.
> sbt
Write your own build tool, dammit. I'm working on one.
> Language is dying
Not really. It's just not in the spotlight and never has been. But people feel entitled and moving away from Scala instead of making contributions.
> Go
If you are seriously switching to Go, not code-generating Go but writing code manually - that, probably, means you've never mastered Scala.
Its the most popular functional programming language. Comparable languages like Haskell or Ocaml are even less popular.
There are far too many javaisms in the overall Go codebase. Please, respect that the language was created with completely different mindset than what you already are used to.
Thanks
I'll code in whatever language I want, to my own enjoyment and with my own approach.
Thanks.
For whatever reason, the FP-first approach it allows me to use, matches how I like to think about problems. For comprehensions for handling complex types, easily, feel like a superpower.
When I started (and I started out of necessity, inheriting a number of old Scala 2/Play 2.x codebases), it felt like a big mistake. Weeks of banging my head around abstractions I didn't yet understand, or immutability-first approaches that were different from my (limited) python experience had me terrified. It eventually clicked. For my first year, I committed to write some Scala every single day; it was worth it.
Though to be fair, two years with the language versus ten is a big difference, so I very well could be completely wrong here. It's just like, my opinion, man.
Would I enjoy writing any language after putting in a lot of dedicated seat time? I don't know. I certainly didn't fall in love with Python the same way - but I'm willing to admit I could be doing it wrong.
That said, a number of the concerns in the post are valid. There's some spread between Scala2 and Scala3, related libraries, tooling, and a few surprising gotchas. Testing frameworks are bit fragmented with Scala2 and 3 support. However, I've not found it nearly as horrible and the joy of being able to work with what is working has outweighed the occasional "WTF" cost (often measured in "time wasted" lol).
I can't speak to the IDE issues the author is noting, I don't use IntelliJ. I've found Metals + Neovim to be truly wonderful on the whole, and it's pushed me to be even more aware of the underlying tooling I'm using.
Scala's 3 enums, opaque types (and now named tuples) are just a few changes that have made Scala 3 pretty wonderful to work with. It doesn't seem to me like Scala3's release is a failure. The real word is messier than a well-written function. ;)
One thing I've found, not at all mentioned in the article, is how welcoming the Scala community is, whether by necessity or virtue (why not both?). They're open to accepting help, willing to mentor/teach, engage in reasonably thoughtful discussion (from my experience), and seem to be willing to support each other.
Scala also pushed me to start learning Rust. Some of their shared heritage and style made it an interesting target for my desire to learn a language for a few embedded systems projects I'm working on.
So is it a dying language? I don't know if I really care. I'm incredibly grateful it exists.
PS - ScalaJS is both fun and cool. I love that someone wanted to make this a reality.
I find Scala very esoteric, jftr :)
> You can even see Typescript or Python as backend languages, mainly in the startup area.
"even" "mainly" - I wonder if the author has ever worked anywhere else than... a bank or similar cliche work places.
> In 2023, 52.3% of the respondents wanted to use Scala.
What.. are these numbers? Sure that's not "52.3% of Scala developers"?