The more I learn about other programming languages like Rust or Scala or Haskell and try to adopt some of their type system features to Java just to have less buggy code the less I feel I want to work with Java any more . Just like you said , Java type system is just too weak to handle lack of null in a clean way I ' ll ignore the fact that also we also don ' t have unsigned int . If you try to extend it using checker framework you don ' t use more types , but type extensions with very weak constraints . <| sep |> Sign a petition on the government official site to demand shit is changed . Britain definitely has its fair share of issues but the USA ' s negligence of basic public services never fails to blow my mind .