Note: I use Scala in my day job. I consider it better than Java, but worse than other languages. I definitely agree that all languages accumulate compromises and inelegant hacks as they evolve. It&#x27;s unavoidable.<p>That said, in my opinion Scala&#x27;s blunders are many. You can find out about many of them from Paul Philips, ex committer of Scala, but if he sounds too bitter to you (he does to me; at this point he sounds like there is bad blood between him and Odersky), here are some of mine:<p>- Null. Null will come back to bite you in Scala code, whenever you call Java libraries, and the occasional Scala library that didn&#x27;t get the memo. Sure, you can wrap <i>every</i> suspect value with Option(...), but <i>why</i> should you do this?<p>- Type inference is not as powerful as in a language with a cleaner type system such as Haskell. I&#x27;m told this is because Scala tries to be both OOP (inheritance) and FP at the same time. Here is a clear case of Scala&#x27;s attempt at being a &quot;jack of all trades&quot; resulting in it being inferior than the sum of its parts.<p>- Type signatures in Scala collections and core types are extremely hard to read. You do not <i>need</i> to read them, but if you try, you are in for a world of hurt. This in itself is not a mortal sin, but of course if you&#x27;re willing to forgive Scala this much complexity, surely you&#x27;re willing to forgive other languages as well?<p>- Tooling is bad. It&#x27;s getting better, but it&#x27;s still bad. SBT is painful to use. As for IDEs, IntelliJ is now the recommended choice; I&#x27;ve tried both Scala IDE and IntelliJ, and they both suck. Slow, spurious compilation errors, uncomfortable to use.<p>- And finally, telling bit of personal experience: I do NOT use Haskell professionally, yet whenever I want to try a quick idea and see if it typechecks, I find it easier to open ghci (the Haskell REPL) and try my idea than do the same with the Scala REPL. What does this say about Scala?