There are many uses for Java, from e-commerce sites to Android applications, from scientific to financial applications like trading systems, from games like Minecraft to desktop software tools like Eclipse, Netbeans and IntelliJ, from open source frameworks to J2ME applications, etc. Let’s take a closer look at each of them.
If you want to see where Java is being used, you don’t have to go far. Just pick up your Android phone, absolutely all apps are written in Java, using Google and Android APIs that are similar to the JDK. A couple of years ago Android provided the necessary capabilities, thanks to which today many Java programmers are Android developers. By the way, Android uses a different JVM and a different and different way of composing, but the code is still written in Java.
Java is very extensively used in the financial services industry. Many global investment banks like Goldman Sachs, Citigroup, Barclays, Standard Charted and others use Java to write front-end and back-end office electronic systems, regulatory and confirmation systems, data processing projects and several others. Predominantly Java is used in writing server-side applications, mostly without any user interface, that receive data from one server, process it, and send it onward. Java Swing was also popular for creating “thick-client” interfaces, but now C# is rapidly taking over the market in this area, and Swing is running out of steam.
Java is also widely used in e-commerce and web applications. A huge number of RESTful services have been created using Spring MVC, Struts 2.0 and similar frameworks. Even the simplest applications based on Servlet, JSP and Struts are quite popular in various government projects. Many web applications of government, health, insurance, education, defense and several other departments are written in Java.
Many useful software and development tools are written and developed in Java, such as Eclipse, IntelliJ Idea and Netbeans IDE. I think these are also, to my mind, the most used applications written in Java. There was a time when Swing was very popular for creating “fat clients”, mostly in the financial industry. Today Java FX is gaining popularity, but it’s still not a replacement for Swing, besides C# has almost completely pushed Swing out of the financial field.
Third-party trading applications, which are also part of the larger financial services industry, also use Java. Popular applications like Murex, which are used in many banks, are written in Java.
Although the advent of iOS and Android has all but wiped out the J2ME market, there are still a huge number of cheap phones from Nokia and Samsung that use J2ME. There was a time when almost all games and apps available on Android were written using MIDP and CLDC, which are part of the J2ME platform. J2ME is still popular in media such as Blu-ray, cards, and set-top boxes. One of the reasons WhatsApp is so popular is that it is also available on J2ME.
Java is vast in the area of embedded systems as well. You can see what the platform is capable of, you only need 130 KB to use Java (on smart cards and sensors). Java was originally developed for embedded systems. In fact, this area was part of Java’s initial “write once, run anywhere” campaign and it seems to be paying off.
Hadoop and other big data technologies use Java in one way or another, such as Apache’s Hbase and Accumulo, or ElasticSearch. Though Java doesn’t dominate this area, as there are technologies like MongoDB that are written in C++. Java has the potential to get a bigger share of this growing area if Hadoop or ElasticSearch expands.