Friday, August 13, 2021

Where is Java used in Real World?

If you are a beginner and just started learning Java, you might be thinking about where correctly Java is used? You don't see many games written in Java except Minecraft, desktop tools like Adobe Acrobat, Microsoft Office are not written in Java, neither are your operating systems like Linux or Windows, so where exactly do people use Java? Does it have any real-world application or not? Well, you are not alone, many programmers ask this question before starting with Java, or after picking Java as one of the programming languages of choice at the graduate level.

By the way, you can get a clue of where Java is used by installing Java on your desktop, Oracle says more than 3 billion devices run Java, that's a huge number, isn't it? Most major companies use Java in one way or another.

Many server-side applications are written in Java which processes tens of millions of requests per day. High-frequency trading applications are also written in Java like LMAX trading applications, which is built over their path-breaking inter-thread communication library, Disruptor.


In this article, we will see more precisely what kind of projects are done in Java, which domain or sector Java is dominating, and where exactly Java is used in the real world? But, if you are already convinced about Java's power and reach and just want to learn Java then I suggest you join these Java Programming courses to learn Java from scratch. This includes the best and most up-to-date courses to learn Java.



Real-World Java Applications

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.




1. Android Apps

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 developers. By the way, Android uses different JVM and different packaging, as we have seen in our previous article about how the Android app works, but code is still written in Java.



2. 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 systems, 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), processes it, and sends it to other processes (downstream). Java Swing was also popular for creating thick client GUIs for traders, but now C# is quickly gaining market share in that space, and Swing is out of its breath.




3. Java Web applications

Java is also big in the 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 governments, healthcare, insurance, education, defense, and several other departments have their web application built in Java.

Real world application of Java





4. Software Tools

Many useful software and development tools are written and developed in Java, like Eclipse IDE, IntelliJ Idea, and NetBeans 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 clients, mostly in the financial service sector and Investment banks. Nowadays, Java FX is gaining popularity, but still, it is not a replacement for Swing, and C# has almost replaced Swing in Finance domain.



5. Trading Application

Third-party trading applications, 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.



6. J2ME Apps

Though the advent of iOS and Android almost killed the J2ME market, there is still a large market of low-end Nokia and Samsung handsets, which use J2ME. There was a time when almost all games, applications, which are available in Android are written using MIDP and CLDC, part of the 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.



7. Embedded Space

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 it looks like it is paying up now.



8. Big Data technologies

Hadoop and other big data technologies are also using Java in one way or another like Apache's Java-based HBase and Accumulo (open source) and  ElasticSearch as well. 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 of this growing space if Hadoop or ElasticSearch goes big.



9. High-Frequency Trading Space

Java platform has improved its performance characteristics a lot, and with modern JITs, its capable of delivering performance at the C++ level. Due to this reason, Java is also popular in writing high-performance systems, because Though performance is a 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.



10. Scientific Applications

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.


In the 1990s Java was quite big on the Internet due to Applet, but over the years, Applet's lost its popularity, mainly due to various security issues on Applet's sandboxing model. Today desktop Java and Applets are almost dead. 

Java is by default Software industries darling application development language, and given its heavy usage in the financial services industry, Investment banks, and E-commerce web application space, anyone learning Java has a bright future ahead of him. Java 8 has only reinforced the belief that Java will be continuing dominating software development space for years to come.


21 comments :

YourFriend said...

What is Java future for Desktop Applications?
Should we indulge ourselves in Java if we want to develop desktop applications? or there is no way possible other than C# ?

I am not a big fan of Visual Studio, just wanted to make sure if Java has any future for developing Desktop(particularly Windows) applications?

Thanks for writing such a nice article :)

Anonymous said...

There are barely any *Real World* examples in this post, beyond some passing references to LMAX, an some financial institutions.

The rest is just the vagueries of Trading/Banking/Finance, Mobile/Embedded, and Server.

Name some *Real World* examples; real componies, real products, real projects.

Anonymous said...

"Lots of global Investment banks like Goldman Sachs, Citigroup, Barclays, Standard Charted and other banks"

That's why they suck, they are not lean and they will fail the test of time. You can write a project in Java in 3 months with a team of developers, I can do the same project in whatever framework is most suitable in 1 week.

javin paul said...

@Anonymous 2nd, I think Eclipse is real, Minecraft is real, Murex is real, WhatsApp J2ME client is real and as you admitted LMAX is also real.

Anonymous said...

@YourFriend, future of Java desktop application is in hand of Java FX, it it take off like Swing did earlier, you will still see developement happening on that space. There is no point for a Java developer to learn C# as they are similar language but just for different technical stack, instead you should learn Python, Ruby or Perl. Scripting language are very good for small tasks.

Anonymous said...

Java is actually used EVERYWHERE, it's in your phone, it's in your cable's settop box, it's in your credit card, it's on the server which you are currently connected to, it's on the browser you are currently using it. Java is the most ubiquitous language ever created.

Klaas Bredenkamp said...

Before I share from my own experience, see this article from last year: http://www.wired.com/2013/09/the-second-coming-of-java/.

Some quotes:

'But over the past few years, Java has evolved into something very different. It has quietly become the primary foundation for most the net’s largest and most ambitious operations, including Google, LinkedIn, Tumblr, and Square, as well as Twitter. “It’s everywhere...'

‘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' Bob Lee (Square)

We can add Amazon Web Services to the list above (a few of my ex-colleagues work there). Note that these companies use Java (the language), as well as Java (the JVM platform) together with other JVM languages like Clojure and Scala.

From my own experience in the payments industry, I can conservatively say that whether you buy something in a bricks and mortar store or online, do online banking (from a PC or mobile device), get paid your salary, or send money to relatives in another country, a significant portion of the code handling a significant portion of that processing (across the world) is written in Java (the language). The same holds when it comes to the payments that are not visible to the man on the street (e.g. online banking by big businesses, merchant acquiring, etc., etc.). Java plays a significant role in money making the world go round.

Not to mention the product suites written by companies like Oracle in IBM, covering even more industries.

Another angle to approach this topic from is what the real-world demand for Java developers is. See this article from earlier this year: http://www.infoworld.com/article/2608294/java/employers-want-java-skills-more-than-anything-else.html. Also see Java's ranking on http://www.tiobe.com/index.php/content/paperinfo/tpci/index.htm and http://jobstractor.com/monthly-stats. Finally some keyword search results from indeed.com:

Java 75,018
Javascript 56,892
C++ 33,663
C# 33,298
Python 30,586
PHP 17,676
Ruby 15,271
C Programming language 8,943
Objective-C 4,435

Now, I know some of these rankings may be questionable, but when combined with data from the job market, there is a clear trend hear. Currently there is a strong real world need for Java.

Klaas Bredenkamp said...

I have also been pondering an anonymous comment that seems to imply that large companies are not lean and that their Java projects take a lot of time and resources to deliver. I do not know what the commenter's frame of reference is, but in general being lean (i.e. doing lean software development) does not have to do with the size of your company or the technology you use. Lean originated in the manufacturing industry and is about applying certain principles to how you build something. To provide one data point, I know someone who was recently invited to speak at a lean summit. He is the head of a department in a large software development company that applies lean principles. The software development component of their projects spans as little as a few days to a few weeks and is done in Java on a Java-based framework, typically involving only one Java developer.

Anonymous said...

Python is also quite good when it comes to Scientific Applications. Check IPython!

An Ng said...

Please, you sound very savvy, would you name a few a those framework and give us a little bit of light how a serious project got done in a week. Thank you.

Anonymous said...

The best way to implement the model view controller pattern is with Java.
Servlets,SQL,JDBC.
You can choose between Tomcat,JBOSS ,Oracle Application Server etc

javin paul said...

@An Ng, there are several MVC framework for Java developers e.g. Struts 2.0 and Spring MVC

D-man said...

You should check out JavaFX.
Here are a few links for real world apps.
https://jaxenter.com/20-javafx-real-world-applications-123653.html

https://m.reddit.com/r/java/comments/3t7gzi/what_are_some_examples_of_great_javafx/

Unknown said...

Java is programming languages and it is used as the back-end for creating various software or product engineering.

Anonymous said...

Thank you for the article. I'm about to start learning Java in my next semester of college and this article has helped me understand how and where I can use Java in the real world. Well done : )

Unknown said...

is there's really a bright future for java learner?

mjles89 said...

thank you but i still dont understand why java is so important and people give it so much credit to it and how can I implement java in any form or way if I had no prior experience in coding thanks for the article

javin paul said...

Hello @Mjles89, Java is important because it can give you a job which can early you money. Many big organization use Java to implement there mission critical application, learning Java help you to do that and get employed by those.

Unknown said...

Thanks
But I also really can't understand why is Java so important

nikhil said...

Thank you

Anonymous said...

Isn't Java being (or rather has been) mostly outclassed, out "featured", and just generally outpaced by Microsoft's .NET stacks (.NET Core/Xamarin for cross-platform and .NET Framework for Windows)? Specifically, the fact that the .NET Core being equivalent (for all intents and purposes) to the JVM and C# being, again for all intents and purposes, equivalent to the Java language. I would be surprised if in 10 years time, Java is not almost completely relegated to the status of "for maintenance only projects/positions".

Speaking of which, for the jobs numbers you posted, do you know how many of those are for maintenance-oriented positions versus true development-oriented positions (i.e. new projects, startups, etc.)? I know most people who I know who program in Java are doing maintenance work with it and not developing anything from a ground-zero point of view.

Most of the time, the enterprise projects I see generally (or consider) use the Microsoft .NET technology and/or the MEAN stack (JavaScript oriented technologies) for developing greenfield applications. I have only ever seen Java used in brownfield projects whereby nobody wants to rewrite X 100,000's lines of code for a new stack. Do you see or know of many new/greenfield projects (excluding Android apps) whereby the Java stack is the primary candidate for the project? I have not seen or heard of anyone really doing that.

I also read about a lot of people preferring to use derivatives of Java such as Kotlin and Scala over vanilla Java because of various reasons (syntax, features, reputation, outlook on the language, etc.). Do you think that plays a bigger or more prevalent role in the importance of Java as more of a "base" language/platform for newer and more expressive derivatives? Google even recommend Kotlin for Android app development over pure Java (or C++, if you're really hardcore) relatively recently.

Interested to hear your thoughts.

Post a Comment