There are lots of criticism on Java, some keep saying it’s bad, good , fair and the likes ,
but the reality is that, out of many of the programming languages ,majority of great
scientist and engineers in both academics and industries have concluded that programming languages behave like an ecosystem: new languages appear and old languages are supplanted unless they evolve.
Whereas we all hope for a perfect universal language, but in reality certain languages are better fitted for certain niches. Example, C and C++ remain popular for building operating systems and various other embedded systems because of their small run-time footprint and in spite of the fact that they lack programming safety.
This lack of safety can lead to programs crashing unpredictably and exposing security holes for viruses and the like; indeed, type-safe languages such as Java and C# have supplanted C and C++ in various applications when the additional run-time footprint is acceptable.
No doubt migrating to a new language and tool chain may seems too painful for just a single feature, but newcomers will eventually displace existing languages, unless they evolve fast enough to keep up (older readers are often able to quote a range of such languages in which they’ve previously coded but whose popularity has since FOTRAN, Algol, COBOL, Pascal, Delphi…).
So, why Java is still the best
1. The language started with good foundation with good pillars designed as OOP language with
2. It suppot thread and lock for small scale consurrency
3. Colonized great aspects of embeded computing
4. Portability, Speed, Scalability and many more
and lastly the arrival of Java 8 and 9 has indeed make Java the best among others.