8 ms·
The problem with Scala is not that it has all the features of Swift, it's that it has way more. Scala developers see this as an advantage, everybody else sees t
by hota_mazi 10y ago
The problem with Scala is not that it has all the features of Swift, it's that it has way more. Scala developers see this as an advantage, everybody else sees that as a liability.
Swift and Kotin manage to capture the perfect amount of "a few new features but not too many" of all languages I've played with these past ten years.
They are both the perfect example of languages that hit the right compromise in many dimensions.
- threeseed 10y agoI am terrified of working with experienced Scala developers. The code they write is less about implementing some business functionality in the most elegant way possible. But rather it's an exercise in who can use the most obscure parts of the language. And unfortunately there are far too many obscure parts.
- premium-concern 10y agoI have never seen this.
- threeseed 10y agoThe levels of enlightenment: http://www.scala-lang.org/old/node/8610 http://www.scala-lang.org/old/node/8610 Most Scala developers are in the A bracket. The experts are in the L. The code written by either is so different they could almost be different languages. You don't get this sort of split in Swift, Java etc.
- premium-concern 10y agoThis is more of a split between techniques for programming-in-the-small vs. programming-in-the-large. All languages have this. You could write more or less the same list for Swift or Java with minimal changes. Again, do you have any actual experience with this, or is this just your assumption? Because I have never seen this issue in the wild.
- timv 10y agoI have absolutely seen it in the wild, but at least in my case it seemed to be more a case of "People who wish they were writing Haskell, but found more commercial opportunities with Scala" compared with "People who found Scala to be an improvement over Java". At the extreme of the first group you'd have people for whom it seemed like every problem was best solved with a higher-kinded-type. And while it might well have been technically (and mathematically) elegant, the rest of the team was left scratching their heads trying to understand it.
- naasking 10y ago> The code they write is less about implementing some business functionality in the most elegant way possible. But rather it's an exercise in who can use the most obscure parts of the language. I think it's rather more likely that you simply don't understand why they're using the more obscure parts of the language on any given problem. They're probably trying to rule out certain invalid uses as type errors, which is typically encouraged in the more advanced typed languages.
- justinhj 10y agoI work with a team of 8 scala developers of varied experience. We try to set the bar at the sweet spot of power and readability. If someone's code becomes super dense because they've gone crazy with scalaz constructs then we ask at review stage to simplify, to comment and/or educate the rest of the team. I don't think experienced coders should be irresponsibly using Scala at a level that is inappropriate for the team.
- premium-concern 10y ago> The problem with Scala is not that it has all the features of Swift, it's that it has way more. Please have a serious look at Swift. I don't think this claim stands up to any kind of scrutiny. Swift is more like C++ than anything else in terms of features, Kotlin has roughly the same amount of features as Scala but more special-cased ones. Kotlin solves one problem well, and only that one: If you want to write Java, but want it to be a bit less verbose, then Kotlin is perfect.
- 3pt14159 10y agoThe real problem with Scala is Java. Most of us over here in C / Ruby / Python land or .NET land have been bitten by dipping our toe into Java and now avoid it like the plague.
- premium-concern 10y agoThen use Scala! You almost never need to deal with Java except if you want to. Plus, unlike C/Ruby/Python/.NET you get a JS backend that actually works¹ (unlike mess like GWT, or various other languages). ¹ In the sense of: Scala.js is stable, mature and production-ready. You can use it, save a lot of time, share a lot of code, use mny of the libraries you already know, enjoy great IDE and tooling support, use it in real projects and make money with it.
- manojlds 10y agoTypescript is C# in spirit
- premium-concern 10y agoExcept IDE and tooling support, maturity and stability, and you can't share any libraries between Typescript and C#.
- virtualwhys 10y agoScala.js is Scala.
- BoorishBears 10y agoScala on Android is pretty terrible
- premium-concern 10y agoHow? Even the tooling seems to be vastly superior to the Gradle one. Deals with SDK dependencies automatically, typed resources and views, better Instant Run, ProGuard caching, extremely low overhead, fast compiles, ...
- akst 10y ago> The problem with Scala is not that it has all the features of Swift, it's that it has way more. Scala developers see this as an advantage, everybody else sees that as a liability. Well for it's intended audience it's exactly what they want I guess, same could be said for Swift IMO. That said, Swift definitely has boarder appeal.
- premium-concern 10y agoIn which sense?
- akst 10y agoI was saying Scala was designed for a certain audience in mind, probably Haskell/OCaml devs forced to develop for Java or something like that. Similarly Swift was designed for an intended audience in mind, iOS developers, and so certain programming features would not mesh well like higher kind types. Maybe this is more of a case of an ideal feature set as envisioned by Odersky vs' Lattner, idk. Either way different people look for different things in a language and that's all I'm saying really.
- premium-concern 10y agoScala was designed to provide the best of OOP and the best of FP, without adding cruft or having multiple non-orthogonal features of one concept. I think there is large audience of people who want the best OOP tools, or the best FP tools or both.
- jowiar 10y agoSeeing Odersky's talks, that is a gross mischaracterization of what he has said on the topic. There's a certain readable, elegant, concise style of code that is expressed very naturally in Scala, and if you take Odersky's courseras, it's very clear that it's something that was a preeminent design goal of the language. The Scala community, on the other hand, got hijacked by a bunch of Haskell neckbeards who spew executable ASCII art over every codebase they get their hands on. The formation of the Scala Center feels like a response to this -- an effort to "retake" Scala.
- flukus 10y agoIt's only a disadvantage if you work with people that try to use every feature for every job. Admittedly some people do this, but you'll get the same problem in many languages like c++, ruby and c# as well. The features are great for people writing libraries, but general purpose code should usually only need a subset.
- karim 10y agoThe problem with gargantuan languages like Scala and C++ is not that some people will try to use every feature, but that everybody will use a slightly different subset. Most reasonable people will agree on using a subset of the language but few will agree on what goes into that subset :)
- flukus 10y ago> Most reasonable people will agree on using a subset of the language but few will agree on what goes into that subset :) Why is that a problem? Different people/teams will have different needs. If I'm working on a problem where generics is a good fit and bob across the office is working on more business code where it isn't a good fit then it makes sense that we would both be using a different subset of the language.
- tatterdemalion 10y agoI need to understand all of the features to understand both your code and Bob's, especially when they interact. The point of "using a subset of a language" is having less feature interactions to understand.
- dman 10y agoFlip side is languages with such a small intellectual footprint that the moment that the problem domain / workloads shift a bit you are forced to switch to a different language.
- deleted 10y ago[deleted]