&gt; To be honest, I feel like the next few versions of Java will assimilate all of Scala&#x27;s good features. Java 8 already added lambdas, the optional type, and so on.<p>Java doesn&#x27;t have case classes, pattern matches, covariance, or higher-kinded types. Its optional type is seriously flawed in a way that will make migration harder (it can&#x27;t contain null), and the library ecosystem hasn&#x27;t yet moved away from using nulls, and while its lambdas are better than before they don&#x27;t hold a candle to Scala&#x27;s _ style for conciseness.<p>Maybe Java will adopt these things in say 5 years - but why would you want to wait 5 years for them? (And conversely: you like the Java 8 features? If you were using Scala you could&#x27;ve had them 5 years earlier).<p>&gt; In a production system, Scala is quite frustrating to work with because of the frequent backwards compatibility breaks<p>The backward compatibility breaks aren&#x27;t very frequent now - that&#x27;s a lot of what this roadmap is about.<p>&gt; and the slow-motion build times.<p>Building can be slow - but only to the extent that you&#x27;re actually using the fancy features. If you write java-like code (e.g. explicit types on everything) you get java-like build times.<p>&gt; Not to mention the new stuff which almost but not quite duplicates the built-in Java stuff<p>You&#x27;re going to have to mention it - what are you talking about?<p>&gt; It would be better just to have a better Java, not a hack on top.<p>It&#x27;s not a hack on top. It&#x27;s a full-fledged language (the existence of scala.js is proof of that). The JVM was always intended to support multiple languages.