&gt; <i>I&#x27;ve never experienced null problems in Scala. There&#x27;s theory and there&#x27;s practice.</i><p>Yes, and I&#x27;m speaking in practice! If your language allows nulls, they <i>will</i> be used. I&#x27;ve experienced plenty of NPEs in Scala code, both from Java libraries and from misbehaving Scala code, to know this is real. Lucky you if you haven&#x27;t experienced them! (As an aside: avoiding NPE is <i>almost never</i> a matter of simply &quot;reading the docs&quot;. Many times there aren&#x27;t docs at all, and even when there are, nulls are seldom documented).<p>&gt; <i>Being a &quot;jack of all trades&quot; means Scala has the superior module system</i><p>Your comparison with Haskell modules is fair. But that&#x27;s just one aspect. Being a jack of all trades means Scala has poorer type inference, way worse type signatures, and generally it feels less clean than both a purer OOP language and a FP one. Scala does fine in all fronts, but not great. If you want to do FP, there are far better languages. I assume it&#x27;s the same with OOP.<p>&gt; <i>SBT is amongst the best build tools ever available</i><p>If true, that&#x27;s... unfortunate. SBT is uncomfortable and bizarre. Before you mention it: Maven looks likewise bizarre to me. These are tools to suffer with resignation, not to celebrate. Talking about Haskell, I&#x27;m trying to learn stack, which some say makes cabal more bearable. Are you familiar with it?<p>I agree IntelliJ is now an acceptable IDE for Scala. It&#x27;s still ages from the comfort of using Eclipse with Java (at least what Eclipse used to be, not the unbearable beast it is now), and to be honest, IntelliJ only <i>recently</i> became usable. A couple of years ago (definitely less than 3 years), the IDE choked on Scala code and highlighted compilation errors left and right where there were none -- and I&#x27;m talking about vanilla Scala code, nothing advanced.