Why is Java so popular as a first language to teach beginners? To me it seems like a terrible choice:
It's statically typed. Static typing isn't useful unless you care a lot about either performance or scaling to large projects.
It requires tons of boilerplate to get the simplest code up and running. Try explaining "Hello, world" to someone who's never programmed before.
It only handles the middle levels of abstraction well and is single-paradigm, thus leaving out a lot of important concepts. You can't program at a very low level (pointers, manual memory management) or a very high level, (metaprogramming, macros) in it.
In general, Java's biggest strength (i.e. the reason people use it despite the shortcomings of the language per se) is its libraries and tool support, which is probably the least important attribute for a beginner language. In fact, while useful in the real world these may negatives from a pedagogical perspective as they can discourage learning to write code from scratch.