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…
> lack of beginner-friendliness could also be seen as a lack of effective static analysis 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 analys…
Without static analysis tools like error-prone, findbugs, nullaway, checker framework, sonar, PMD, IDE-provided analysers, et cetera, it is easy to write problematic Java.
On the other hand, the Java ecosystem has an abundance of such tools available and almost everybody is using them. (Hence, "but I do have that")