Ask HN: Why does Java continue to dominate?
[1] http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Edit: correct spelling
[1] http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
Edit: correct spelling
You won't hear of some new sexy startup using Java, but there are companies who quietly go into business either using Java for their product or providing services with Java applications.
Java is about as enterprisey as programming languages comes. When a recession hits a lot of organisations tighten their belts, and a lot of programming projects get put into "maintenance mode" for a few years (with programmers and managers often being laid off).
After the economy improves companies start paying for new feature development again, fix bugs that had been ignored, and in some cases migrate TO Java from something worse (You'd be surprised how old some large well-known corporation's internal software is, we're talking 1980s mainframe age).
We won't REALLY know if Java is gaining or losing pace for a few more years (assuming there isn't another recession due to Chinese-related market issues).
[0] http://www.tiobe.com/index.php/content/paperinfo/tpci/Java.h...
Basically, at least partly, this other answer by tumdum_ explains it:
https://news.ycombinator.com/user?id=tumdum_
To clarify a bit: Even if newer languages / other technologies have merits (and of course they sometimes / often do), enterprises who have invested a good amount on getting apps built using older technologies (which may well have been current / popular at the time) may have no good justification to pay the cost [1] redesign and rewrite apps just to move to newer tech. ROI, CYA, etc.
[1] That cost is not only of design and writing but also prior research and evaluation, and subsequent deployment and training, etc.
2)Eclipse. I gave up on java a few years ago when it took 5 minutes for the IDE to open up and then would freeze up every few minutes. This was about 5 years ago now and I was using a laptop, so it's probably not an issue anymore but the memory lasts
I agree, older version of Eclipse on bad hardware is truly awful. Thankfully I am using a better machine now.
1) Everyone knows it or has touched it. Walk down a street filled with developers and you'll run into many who know or have worked with Java.
2) Apache. Apache. Apache. The saying goes No one ever got fired for using Java / no one ever got fired for using apache. Most major apache projects and libraries are Java/JVM based and the Java interface provides the best way to interact with them. Don't underestimate the pull from Apache on language choice.
3) Libraries - people have spent millions of man hours developing libraries for Java/JVM languages that aren't replicated elsewhere. Odds are pretty good if you're looking for an open source library that does X someone wrote it for the JVM.
4) Legacy Systems. Java is the new COBOL. There are billions of lines of Java code in existence chugging away around the world. It's more expensive to overhaul and replace an entire code base than it is to find or train developers to work on it.
5) People are riffing on top of the JVM. Rather than fight it, all the new hot languages like Clojure, Scala, Groovy, etc. are building on top of the JVM and taking advantage of what it gives you under the hood and the fact that the JVM has a wide install base. This reduces the likelihood Java will die in many capacities since it's being pushed into a more key infrastructure role rather than outright replaced.
Edit: fixed spelling
I've got only ever done one project in my career with it, and I found myself feeling "meh" about it, but I never hated it.
Also in the Enterprise space, Oracle is a dominant database, and they have made some strong features for Java when it comes to the Oracle database. Having these features and someone you can call for support is good business and good risk protection for larger companies.
There are millions of Java devs. If 1% of them move to a better JVM language that's 10,000+ programmers who have moved. That is a lot of developers jumping ship.
In addition, by jumping ship they really mean starting new development in another language... They aren't rewriting their millions of lines of Java code. So they still maintain this code and as such would still be flagged as Java programmers.
The last time Groovy made the top 20, it hit #18 in Oct 2013, but 3 months later (Jan 2014), had dropped back out of the top 50 (#32 in Nov, #46 in Dec). TIOBE said the following month "The data is produced by one of the sites that we track is interpreted incorrectly by our algorithms. After we fixed this bug, Groovy lost much of its ratings." [1] Just before that fix happened, interviews with the current Apache spokesperson for Groovy (Guillaume Laforge) promoting Groovy's top 20 position were published in 5 online rags (www.infoworld.com, www.eweek.com, cacm.acm.org, jaxenter.com, and glaforge.appspot.com), and all of them quickly appeared in Google's top 30 search results for "groovy programming" and remained there for 6 to 18 months afterwards. I'm guessing the same feedback effect was engineered again before the end of last month (Jan 2016), and Groovy will again start losing its new top 20 ranking.
This rapid rise then fall also happened with Groovy in December 2010. Groovy began a sudden rise from outside the top 50 when Groovy tech lead Jochen Theodorou "volunteered" his services to Tiobe in late 2010 to help them improve their algorithms. Than in April 2011, Groovy fell from #25 to #65 on Tiobe in a single month after they increased the number of search engines they monitor.
These fleeting peaks for Groovy in the TIOBE rankings (#25 in Apr 2011, #18 in Oct 2013, #17 in Jan 2016) between its usual ranking of somewhere between #51 and #100 (e.g. #82 only 12 months ago) are a bad thing for Groovy because of damage to its reputation as a solid language suitable for long-term IT solutions. Such ranking volatility gives off the stench of search engine optimization, a smoke-and-mirrors marketing tactic intended to benefit a single stake-holder, probably the person who privately owns the groovy-lang.org DNS domain.
[1] http://www.infoworld.com/t/application-development/c-pulls-a...