This is a 10,000-foot view of the Java ecosystem in 2022. So, if you want to understand how modern Java application development works, dig into this!
In this guide
In this full guide, you’ll learn:
- How the Java ecosystem works
We started putting this guide together because we know you have questions!
Whether you’re a DevOps engineer needing to support Java apps, or you’re a junior engineer wanting to go beyond the simple “hello world”, Java can seem intimidating, if you don’t have a guide to show you the way.
Our Java guide explains the activities, the software and the tools you need to know, and includes tons of links to other websites and blogs, so you can dive deeper into any topic you like. 🏊♀️
That’s enough intro for now. So grab a cup of Java and let’s begin with the basics:
In this section we’ll cover the basics of Java.
What is Java? And why is it still important?
What is Java?
Java is an object-oriented programming language, and runtime environment.
Write once, run anywhere.
Java code is super portable.
It runs inside a runtime called the Java Virtual Machine (JVM).
You can get the JVM on lots of different devices, from laptops to mobile phones.
This means that it’s easy to write code on computers and laptops, and then run it on servers.
Java is represented by a cartoon mascot called Duke, who kinda looks like a cross between a penguin and a doorbell.
But Java is a compiled language, similar to C++, which runs on servers and many other devices.
What can you build with Java?
Today you can use Java to build many different types of apps:
Standalone, command-line apps: this is the type of app that you will probably develop when you first learn Java
Back-end applications: Long-lived server-side applications, like APIs, and so on. (You’re probably here! And me too. These are the types of apps that I’ve worked on for years.)
Desktop apps and games: Two famous desktop Java applications are IntelliJ IDEA and Minecraft.
Embedded applications: This is software which runs on connected devices, like TV set-top boxes or internet-of-things devices like fridges.
Mobile apps: Android runs Java and Kotlin (a language that runs on the JVM)
How is Java used?
Java is used to develop applications of all different shapes and sizes.
You won’t see most of the software that’s written in Java, because the source code is held privately inside companies.
Many of the back-office (or internal) apps used inside companies, are written in Java.
Here are just some of the types of business Java apps I’ve seen:
Finance applications (Java is a very popular choice in the financial sector, e.g. for trading systems)
Logistics and fulfillment applications
Retail and ecommerce applications
Applications which process and transfer data
And it’s not just used in business. Governments and public sector organisations use Java too. Even the military uses it.
Outside of internal business apps, where else might you find Java in use?
Desktop apps and games (like Minecraft Java Edition)
Mobile apps on Android
Software utilities, like Elasticsearch
Who is using Java?
So who do we know is using Java?
We can look at public engineering blogs, like:
And these are just a few who talk about it publicly. There are many more companies which use Java.
Another easy way to find out who’s using Java is to simply look at Java job descriptions.
Who owns Java?
This is a tricky question to answer! But we’ll try anyway:
Java has a long history, but there is definitely one company which has been involved with Java much more than others. (Hint: 🅾️)
Oracle is the steward of Java
Oracle is the main steward of Java.
Officially, Oracle owns the Java trademark1 and owns the copyright to much of the source code of the JDK (see an example).
In fact, Oracle fought a legal battle over Google’s copying of Java APIs in Android. But Oracle utimately lost the case in 2021.
Oracle traditionally makes money from Java by selling a subscription to Java, which comes with commercial support.
How does Oracle own the copyright if Java is open-source?
Although the OpenJDK code is open source, it still has copyright owners.
Every contributor must agree to grant Oracle a joint copyright interest in their code. (This is quite common with open source projects that are led by large companies.)
So ultimately most of the source code carries the text “(c) Oracle”.
‘Big tech’ contributes to the JDK
Oracle isn’t the only contributor to Java.
Other big companies have an interest in Java too, and they make contributions to the OpenJDK source code.
Companies like these are big contributors:
Communities and user groups
Java evolves through many different committees and communities.
This is where people come together to develop new features or agree new standards for Java.
The Java Community Process (JCP) is the way that new official Java standards get developed and ratified.
But anyone can create a Java library and publish it.
Unsure about a Java term? Let us decode it for you in this glossary section!
- Java Development Kit. Or, more officially, “Java Platform Standard Edition Development Kit”. A JDK is a set of tools to compile and run Java code. There are several different JDKs available, see WhichJDK for a comparison of them all.
- Java Archive. A JAR is a file that usually contains compiled Java files (class files) and extra metadata, and even other JAR files. It’s designed for distributing and sharing compiled Java programs and libraries. You can create a JAR file in IntelliJ.