There are plenty of reasons why we could suppose it is pervasive without the language overall being very good compared to other languages. Entrenchment comes to mind immediately.
It can also be that a language is great for a period in history.
- You must be kidding me, ever been to any JUG meeting or JavaOne conference? There are millions of hardcore Java lovers at those places. Java has one of the the biggest developer community world wide. I love Java - it's one of the best programming language till date.
I think this post proves two things: a) "books" are in fact very difficult to judge by their covers and b) predicting the future, even only a decade ahead and in an industry you live in, is a fruitless endeavor
And one has to grant Java this: it has matured a lot over the years. Even has lambdas now! ;-)
In what sense was C++ designed for other people? IIRC Stroustrup came up with it to use on his own research projects.
Reflection made one tricky part of a project very easy. I still love how elegantly it turned out. The type system is... I used to think it was really good, now I'd just call it "OK". JNI is useful for getting certain things done, but the syntax is gouge-your-eyeballs-out awful. Checked exceptions are very useful if you are serious about error handling, and a royal pain if/when you are not.
But the thing that was great about Java, to me, was the library. It was like Barbie - it had everything. I'm just talking about the standard Java library here.
Then you get into the other libraries - Spring and J2EE frameworks and Hibernate and so on, and the XML configuration files multiply. They do great things, but if you have to change what they do, you have to change some setting in some XML file, which uses some syntax that you don't know, and your job is to figure out which XML file and which setting and where the documentation is, and you just go insane. I understand why people loathe that environment.
I tend to find his essays much less interesting and persuasive now than I used to. I'm not sure why.