I’m curious if all the people complaining about type errors have ever used languages that have optional structural types? How many of them had spend a couple of weeks playing with Strongtalk and Newspeak? How many of them had mastered OCaml and Go? The fact that somebody had some unpleasant time using Java ten years ago doesn’t give him or her the absolute knowledge about all the type systems in the world.
Where does this arrogance come from? Don’t you want to try a language with an optional type system and see how it differs from the mandatory one? Aren’t you curious about structural types? No? That’s alright, you don’t have to. But then don’t bash the language you haven’t tried.