Where is Java used in the real world?
Java is one of the most popular programming languages used to create Web applications and platforms. It was designed for flexibility, allowing developers to write code that would run on any machine, regardless of architecture or platform. According to the Java home page, more than 1 billion computers and 3 billion mobile phones worldwide run Java.
Java is used to build applications and platforms for a number of devices, including computers, laptops, gaming consoles, Blu-ray players, car navigation systems, medical monitoring devices, parking meters, lottery terminals and smartphones. It is also a key language for networking, particularly for data centres that store and transfer Web-based data.
There are many places where Java is used in the real world, starting from a commercial e-commerce website to android apps, from scientific application to financial applications like electronic trading systems, from games like Minecraft to desktop applications like Eclipse, NetBeans, and IntelliJ, from an open-source library to J2ME apps etc. Let’s see each of them in more detail:
If you want to see where Java is used, you are not too far away. Open your Android phone and any app, they are actually written in Java programming language, with Google’s Android API, which is similar to JDK. A couple of years back Android has provided a much-needed boost and today many Java programmer is Android App developer.
Server Apps at the Financial Services Industry
Java is very big in Financial Services. Lots of global Investment banks like Goldman Sachs, Citigroup, Barclays, Standard Charted and other banks use Java for writing front and back office electronic trading system, writing settlement and confirmation systems, data processing projects and several others. Java is mostly used to write a server-side application, mostly without any front end, which receives data from one server (upstream), process it and sends it another process (downstream).
Java Web Applications
Java is also big on E commerce and web application space. You have a lot of RESTfull services being created using Spring MVC, Struts 2.0 and similar frameworks. Even simple Servlet, JSP and Struts based web applications are quite popular on various government projects. Many of government, healthcare, insurance, education, defence and several other departments have their web application built in Java.
Many useful software and development tools are written and developed in Java e.g. Eclipse, InetelliJ Idea and Netbans IDE. I think they are also the most used desktop applications written in Java. Though there was a time when Swing was very popular to write thick client, mostly in the financial service sector and Investment banks. Nowadays, Java FX is gaining popularity but still, it is not a replacement of Swing and C# has almost replaced Swing in Finance domain.
Third-party trading application, which is also part of the bigger financial services industry, also use Java. A popular trading application like Murex, which is used in many banks for front to bank connectivity, is also written in Java.
Though the advent of iOS and Android almost killed J2ME market, still there is a large market of low-end Nokia and Samsung handset which uses J2ME. There was a time when almost all games, application, which is available in Android are written using MIDP and CLDC, part of J2ME platform. J2ME is still popular on products like Blu-ray, Cards, Set top boxes etc. One of the reasons for WhatsApp being so popular is because it is also available in J2ME for all those Nokia handsets which are still quite big.
Java is also big in the embedded space. It shows how capable the platform is, you only need 130 KB to be able to use Java technology (on a smart card or sensor). Originally Java was designed for embedded devices. In fact, this is the one area, which was part of Java’s initial campaign of “write once, run anywhere” and looks like it is paying up now.
Big Data technologies
Hadoop and other big data technologies are also using Java in one way or other e.g. Apache’s Java-based HBase and Accumulo (open source), and ElasticSearch as well. By the Java is not dominating this space, as there are technologies like MongoDB which is written in C++. Java has the potential to get a major share on this growing space if Hadoop or ElasticSearch goes big.
High-Frequency Trading Space
Java platform has improved its performance characteristics a lot and with modern JITs, its capable of delivering performance at C++ level. Due to this reason, Java is also popular on writing high-performance systems, because Though performance is little less compared to native language, you can compromise safety, portability and maintainability for more speed and it only takes one inexperienced C++ programmer to make an application slow and unreliable.
Nowadays Java is often a default choice for scientific applications, including natural language processing. Main reason of this is because Java is more safe, portable, maintainable and comes with better high-level concurrency tools than C++ or any other language.