7 ms·
I'm a Scala developer and personally I believe that such claims are unwarranted, mostly coming from beginners with a superficial understanding of the language.
by bad_user 11y ago
I'm a Scala developer and personally I believe that such claims are unwarranted, mostly coming from beginners with a superficial understanding of the language. Not only is Scala not a kitchen sink, but it actually cuts down on Java features that were a bad idea.
This misunderstanding mostly happens because some people start learning Scala in the hope of finding a better Java. But Scala is not a Java++, but something else entirely, being the kind of language that makes sense outside the boundaries of the JVM.
As a piece of advice, if you aren't interested in trolling, you might want to name actual things that you don't like, as in things that you can talk about, instead of things that are non-falsifiable. That way, in case you have a point, then other people or even Scala's or Kotlin's language designers can learn from your feedback. And if you don't have a point, then you might get some useful piece of advice.
On Kotlin - I don't like that it doesn't diverge enough. This is because when picking a non-mainstream language, you lose the advantages of mainstream languages, like easily available documentation, copy/paste-able samples, big developers pool, etc, etc... so the advantages of the non-mainstream language would better be worth it to balance the disadvantages ;-)
- deleted 11y ago[deleted]
- incepted 11y ago> you might want to name actual things that you don't like, as in things that you can talk about, instead of things that are non-falsifiable. Sure, I could name things that I don't like but they will be by definition non falsifiable as well, so I don't really see the point of what you're asking. Overall, I just find the surface area of Scala way, way too big. I felt the same way about C++ compared to C in the 90s, hence my comparison. I've used Scala for five years and over that period of time, I've seen the language adding feature over feature instead of addressing critical aspects such as good IDE support or decent build tools. I'm still stuck with Scala at work but I'm really hoping Kotlin takes off because using it on my personal projects has been a breath of fresh air compared to Scala. It's like getting 90% of the power of Scala with 5% of the cognitive load.
- whateveracct 11y agoScala's surface area isn't especially large though? Here's a list of Scala language-specific features I use & have to keep in my head on a daily basis: - Case classes + sealed hierarchies (algebraic types, in other words) - Implicit parameters - Collections library - Traits - Function types, currying, partial application - for-yield - Pattern matching None of those concepts on their own are especially complicated. In fact, I find Scala to have a bunch of orthogonal features that are easy to understand on their own and that compose in a variety of useful ways.
- incepted 11y ago> Scala's surface area isn't especially large though? You'll find plenty of disagreement with that feeling everywhere you ask... The fact that you choose to use a small subset of all these features is irrelevant: eventually, you have to hold all the language in your head because you will work with other people and other organizations that have different standards than you do. Which is why it's so important for a language to learn how to say "no" to new features, something I feel Scala has been unable to do.
- whateveracct 11y agoWhat other features could someone even reasonably use though? I say this because what I listed above isn't some small subset of Scala. It's actually the majority of the language. Hmm I'll try to think of some features that we don't use at work that would add additional semantic overhead: - Inheritance? I mean okay but nobody I work with makes heavy use of this anyways and if I were working in a Scala shop where inheritance was used heavily it would be like working in a different language. So I suppose I'll give you that although I don't see how that makes the language hard to learn or work with. - Mutable collections + references (vars)? Once again nobody I work with uses these outside of local mutability when they fail to be able to leverage immutable abstractions that do the same thing. If I worked in a Scala shop where mutability was used without care, it would be like working in a different language entirely true. - while loops? I don't know what else I'm grasping for straws here. If anything, the additional 'complicated' things we use in Scala aren't language features but rather libraries, mostly scalaz/shapeless.
- adrusi 11y agoC++'s goal was to introduce a newly popular paradigm (oop) on top of an existing rich ecosystem (c). Scala's goal was to introduce a newly popular paradigm (fp) on top of an existing rich ecosystem (java). They both suffer from poor tooling, long compile times, and feature bloat with several predominant styles of writing it. To dismiss the similarities is disingenuous.
- bad_user 11y agoYeah, both are programming languages. Objective-C was also built on top of C, with the same original purpose as C++, yet you couldn't find two other mainstream languages that differ so much. I can't really answer to your argument because it is superficial and there isn't anything in there to answer to. Whenever I ask folks what makes Scala complex or bloated, or what the conflicting "styles of writing it" are there, they always shy away. Because it's easier to be handwavy than it is to construct a good argument. Unfortunately handwavy arguments are subject to marketing and social forces. This is how people end up worshiping Python's spirit and included batteries, which must be some of the biggest lies in our industry, since I can name more non-orthogonal and half-baked features in Python than in Scala, plus several clusterfucks in its standard library and ecosystem, starting from the build management tools, the async-I/O libraries and the web libraries, all of them screaming anything else but "there is only one way to do it". But that's just the herd mentality in action.
- mike_hearn 11y agoIf you would like a specific, concrete issue with Scala, I find its documentation to be extremely poor compared to Kotlin.
- justthistime_ 11y agoIt's easy to say "Kotlin has no projects with poor documentation" when it doesn't have many projects at all. :-) I think Scala library authors would love some links to those things where you consider the documentation to be lacking.
- krschultz 11y agoThat's not trolling at all. I work at Gilt. We're always cited as one of the biggest Scala proponents. I still think the analogy to C++ is adapt. C++ is a great language. Scala is a great language. Both are huge and require knowing which parts to work with.
- bad_user 11y agoI wasn't saying that you're trolling, I was just asking about reasoning since I'm curious.