Why don't you think Haskell will help with this? If Java can't prevent a NullPointerException I don't see how static analysis can take the tooling where you want it to go.
It's zero-sum if the tooling around Haskell is antiquated compared to Java's. But the idea that a language is going to make us "that" much more productive has to go. We need much, much better tools.