OP is glossing way too many things.<p>1. Desktop users are tricked in to installing Ask toolbar crapware. Which other language tricks users in to doing that?<p>2. Java development actually have languished for very long time and it is very recent that it started to catch up with C# and other modern languages. Java forums are filled with cries and screams for adding these improvements for years on.<p>3. Java is built on language concepts that are now 20 years old. Back than people wanted every language look like C++. The millennials think outside the braces. They expect language to infer types instead of repeatedly being specified all over. They expect REPL. They don&#x27;t want everything modeled as object and so on. Mature language does not equal modern language.<p>3. Java is not truely &quot;open source&quot; or &quot;free&quot;. Ask Google and Apache Harmony for the legal battles they had to fight with Oracle.<p>4. If Microsoft had done what it&#x27;s doing with C# and .Net back in 2000, I highly doubt Java would be as popular as it is now. In other words, things can be popular even while being technically legging behind. This is not to say C# was initially just a Java copy cat but it did grew up fast while Java folks set on their laurels.<p>5. Java is owned by Oracle. Enough said.<p>I think modern languages should not have obligation to look like C&#x2F;C++ and it should use advances in automatic type inference, functional paradigms etc. Anything 20 years old would have great libraries and VMs, but then mainframes and Cobol were also very safe, &quot;reliable&quot; and had great libraries and infrastructure at some point. It&#x27;s ok to use mature tools to get shit done <i>now</i> but proposing them as new frontier doesn&#x27;t make sense.