On side note: Lambdas and full generics were considered in first drafts of Oak (later Java). C++ did not have lambdas those days. They were dropped from Java because of project deadline pressure and no time to do them right, not some ideology.<p>&gt; It&#x27;s easy to churn out a lot of Scala code, but hard to read someone else&#x27;s or debug a Scala program<p>I see this argument a lot in Internet forum discussions, but I&#x27;ve never met anyone who actually had problem reading production level Scala code more than problem reading Java code. Sure, people love to bring on Scalaz and other extreme type-level coded Haskell-like libraries where things can get hairy, because they&#x27;re solving a complex problem. These people fail to show Java-equivalent of such complex Scala code, so a conclusion that Scala was complex is invalid.<p>However, when comparing things solving similar problems for which we have a Java project and a corresponding similar Scala project, let&#x27;s say Apache Spark and Apache Hadoop, Spark&#x27;s code wins in readability hands down.