Java isn't "cool", and I agree that the language itself is frustratingly verbose and kind of lame, but the frameworks built around it are solid. And believe me, many of the Apache Foundation contributors are unquestionably full-on neckbeards.
I've seen a lot of cool things done in Java. I don't mean to imply otherwise. I've also seen a lot of really cool things done in Fortran and COBOL, many of them by unquestionably full-on neckbeards.
That said, within the population of people I know well, the experts who really understand low-level details of computing do not chose to write Java.
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
Java isn't "cool", and I agree that the language itself is frustratingly verbose and kind of lame, but the frameworks built around it are solid. And believe me, many of the Apache Foundation contributors are unquestionably full-on neckbeards.
I'm being overly glib, sorry for that.
I've seen a lot of cool things done in Java. I don't mean to imply otherwise. I've also seen a lot of really cool things done in Fortran and COBOL, many of them by unquestionably full-on neckbeards.
That said, within the population of people I know well, the experts who really understand low-level details of computing do not chose to write Java.
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.