We know types help us eliminate certain classes of errors from programs. For instance, it's impossible to write an executable program in Java that adds a string to a number. If you’re a big company already using Java, you’ve hypothetically saved some significant amount of $$$ in terms of developer productivity. But we still lose $$$ with the most expensive mistake ever made in the software industry - Null. I'm pretty sure while you are reading this, at least one programmer across the world is either running into a null access exception or debugging one!
As such, Java is not a strongly typed language after all. It's just less-weakly typed than python. Well, we have Swift or Kotlin, which when written in a certain way can be statically verified that the program is free of null errors. Or even better, Haskell – which elim