Many applications are nowadays developed using Java. By now, it has even become possible to develop high-performance server applications, but in order to do so, special measures and know-how must be invested.
Also we have to remark that the Java team at Oracle really successfully improves the language instead of creating a monster. They carfully choose which features to add and even which features to remove and how to do it in the best possible way. A lot of criticism of Java becomes obsolete with these efforts. Decisions that have been proven to be wrong in the past, like adding "Serializable", will eventually be corrected by deprecation and later removal.
However, Java is more than just the programming language, it comes with the JVM (short for Java Virtual Machine), which runs on various platforms. The JVM is most commonly programmed using Java, but there are alternatives such as
Scala is particularly useful for the development of high-performance applications thanks to its ability to substantially facilitate the control of parallelism (multithreading).
Kotlin is also promising. It is officially supported by Google for Android Apps and a good alternative for Java in this sphere.