This article is courtesy of Datamation.

The date May 23rd marked 20 years since the Java programming language made its humble launch following a four-year development effort. In that time, the language gas grown, imploded, been declared dead almost as many times as the mainframe. It is now enjoying a renaissance under Oracle’s stewardship.

Googling “Java is dead” brings back millions of results, although there are almost as many people refuting it as declaring it. In the last few years, Oracle has put a lot of resources behind the language to help close all the zero-day exploits and harden the language.

Even when things were bad, Java still had its adherents and supporters who used it for major projects because it had scale and the ability to modularize and break up functions rather than create a monolithic app. This modularity will only improve when Oracle releases Java 9 next year, as it will be a highly-modularized release that loads only the components you need.

Another point in Java’s favor is that it is widely used. In some cases, that was the reason for its use in a project. The developer knew Java but didn’t know other languages. Or they wanted the cross-platform functionality only Java has. Every developer has their reason, but one thing remains consistent: even at its nadir, when the Department of Homeland Security advised Americans not to use the language, Java remained powerful and used in many consumer and enterprise applications.

Below are some of the major apps you may not realize were actually written in Java, but you will see that they are and the reasoning for choosing it from the developers. This is far from a complete list, but it does cover a lot of products, including ones you might use every day.

Hadoop

While many of the projects listed below use a mixture of languages, in the case of Hadoop, the whole thing is written in Java. Doug Cutting, creator of Apache Hadoop and former chairman of The Apache Software Foundation, said this via e-mail:

“Java offers a good compromise between developer productivity and runtime performance. Developers benefit from a simple, powerful, type-safe language with a wide range of high quality libraries. Performance is generally good enough. When it falls short, native code has been used to keep overall performance in line with C and C++.

“Some hate Java and complain that another language would have been a better choice, but every language has its detractors. The fact that Hadoop has been widely adopted shows that Java was a reasonable choice.”

Not only is Hadoop written in Java, so is MapReduce.

Twitter

Twitter started out as a Ruby on Rails application and was the poster child for what RoR could do. Unfortunately, it soon became the poster child for what RoR couldn’t do, and that’s scale. It’s not that Rails doesn’t scale by itself, but it doesn’t handle requests for live data, like searching by hashtags, very well.

The result was a growing number of instances where we saw the “Fail Whale,” an error page that said the service was overloaded. In 2010, Twitter began a major overhaul of its systems. It changed its back-end from MySQL to a real-time version of Lucene and switched from Rails to Java server it calls Blender.

The move to a JVM was driven by both performance needs and developer needs, the company told InfoQ. “The primary driver is honestly encapsulation, so we can iterate faster as a company. Having a single, monolithic application codebase is not amenable to quick movement on a per-team basis.”

Square

The Squarecredit card reader for smartphones and tablet-based point of sale system is a mishmash of languages, using the appropriate language at the place it is needed. That includes Ruby, C++ and Objective-C. The payment stack, which is the important part, uses Java and the third-party API layer uses JRuby and Node.js.

Bob Lee, chief technology officer at Square and a former engineer at Google, told Wired in 2013″Java is really the only choice when it comes to the requirements for a company like ours — extreme performance requirements and extreme scalability requirements. There is no viable alternative.”

Interested in reading more? Check out the original article over at Datamation.