For systems-level apps and so forth, I 100% agree (I have done a lot of systems stuff in C and C++ in my life).
For web apps that scale out to a certain level, Java + Spring + Hibernate + Tomcat works boringly well. That is Java's niche. As you inferred, I wouldn't use it for much else.
Above a certain scale, you're back to C++, of course.
Hibernate works entertainingly bad. If you don't have a very fancy data model (lots of different entities but relative small tables), you better stick to bare spring jdbc-templates.
Comments
For systems-level apps and so forth, I 100% agree (I have done a lot of systems stuff in C and C++ in my life).
For web apps that scale out to a certain level, Java + Spring + Hibernate + Tomcat works boringly well. That is Java's niche. As you inferred, I wouldn't use it for much else.
Above a certain scale, you're back to C++, of course.
Hibernate works entertainingly bad. If you don't have a very fancy data model (lots of different entities but relative small tables), you better stick to bare spring jdbc-templates.