I see Peter Thiel is holding up Google as an example of Monopoly as a good thing, 'Don't Be Evil' and all that. Well, that didn't turn out well. It's certainly not the AT&T of our times. What good has come out of Google lately?
I think it's genuinely simpler than Swift or Kotlin that have seen an explosion of grammar, keywords and features.
The modern Scala ecosystem has mostly converged towards one style even though it's fully compatible with the more questionable Java/JVM constructs like runtime reflection, annotation processing and so on. Sure you have to understand a few FP concepts that might be alien at first, but there's a fairly straight and clear path unlike hybrid languages that evolved in too many directions at once.
Meta-programming features have also been completely overhauled with Scala 3 and are more approachable, especially if you're just an end user that needs a library doing generic derivation for instance.
Odersky is also on a crusade against monadic effect systems and we might get something like algebraic effects, direct-style.
I tried Scala a long time ago, and although I don't remember much about it, I do remember that it felt like Perl for Java. If that's accurate, then it may not have syntactical complexity, but only because it moves that complexity into semantics.
Scala doesn't have operators (as in, + - * / ++ -- ... are just methods) and at some point library authors went a little overboard with DSLs using symbolic names, especially for concepts coming directly from Haskell. But those days are mostly over.
The type system is very powerful and a few concepts have complex semantics, there's no way around it. But in my experience what really hurt inexperienced developers is the mix and match of Java constructs and more functional or Scala specific ones. And in my opinion, the Kotlin ecosystem is even a bigger offender nowadays, while best practices in Scala have somewhat converged, as a direct consequence of its decline in popularity, i.e. because people have stopped trying to use Scala as a better Java.
reply