Java has a high bar for the amount of prerequisite experience it takes to write good code. In other words, it has too many pitfalls for beginners. It is a phenomenally poor choice of language for teaching beginners to code. On the other hand, a lack of beginner-friendliness could also be seen as a lack of effective static analysis. Of course, this is a very Java programmer point-of-view. Others: "you shouldn't need t…
Slightly confusing comment to me ... Java has on the one hand a relatively simplistic static typing system but on the other hand some of the best static analysis support that you can find (I don't think it's a coincidence; the relatively simple type system and lack of ways to hack around it facilitates the strength of the analysis that can be done).
I'm talking about things like, add a parameter to a method in a library and eclipse automatically not only deterministically renames it everywhere that its called in the library but in every dependent project, all in milliseconds. And a dozen other similar types of operations.