introduccion-java-historia-versiones

Introduction to Java: What It Is, History, and Versions

  • 5 min

We’re starting a new course on the website, and this time it’s the turn of one of the “big ones” in programming. We’re talking, of course, about Java.

Today, Java is a modern, robust, and, above all, ubiquitous language. From bank servers to your Android phone, through Minecraft or Big Data.

In this first post, we’re going to lay the foundations. We’ll see what Java really is, a bit of its history (just enough to understand where we come from) and, very importantly, how its versioning system works so we know what to install.

This course takes Java 25 LTS as a reference. The fundamentals and almost all the examples also work on Java 21, the previous LTS.

What is Java?

Java is a general-purpose, concurrent, class-based, and object-oriented programming language. It was specifically designed to have as few implementation dependencies as possible.

Its most famous motto is WORA (Write Once, Run Anywhere).

This means that, unlike languages compiled to native code like C++ (where you have to compile a .exe for Windows and another binary for Linux), in Java you compile once and that same code runs on any operating system.

How does it achieve this?

The key is that Java does not compile directly to processor machine code, but to an intermediate code called bytecode.

This bytecode is interpreted and executed by the JVM (Java Virtual Machine). As long as you have a JVM installed on your machine, your program will work, regardless of whether you’re on Windows, Mac, Linux, or a smart toaster.

We’ll delve deeper into the JVM, JRE, and JDK in the next article, as understanding the difference is crucial.

A bit of history

Java was born in 1991 at Sun Microsystems, led by James Gosling. Interestingly, it wasn’t born for the web, but for interactive television and smart appliances. The project was called “The Green Project”.

Originally, the language was called Oak (after an oak tree outside Gosling’s office), but since the name was already trademarked, they ended up choosing Java (a variety of coffee, hence the steaming cup logo).

In 1995, Sun released Java 1.0, promising “Write Once, Run Anywhere.” It coincided with the internet boom, and web browsers (Netscape) started integrating Java. It was a resounding success.

In 2010, Oracle bought Sun Microsystems, becoming the “owner” of the Java brand and its main steward, although a large part of the development is open source under the OpenJDK project.

Java versions and LTS support

If you’re new to Java, you’ll see Java 8, Java 17, Java 21, Java 23… and it can be a real mess knowing which one to use.

In the old days (until Java 8), versions came out every “many” years. But from Java 9 onwards, Oracle switched to a biannual release model. A new version comes out every 6 months.

To bring order to this chaos, there are LTS (Long Term Support) versions.

  • Non-LTS versions: Released every six months, they allow you to adopt new language features sooner. Their update period depends on the provider and is usually short.
  • LTS versions: Some providers maintain these versions for longer. They are a common choice when a project prioritizes stability and prolonged support.

LTS versions you will encounter

As of today, these are the versions you will encounter in the professional world:

VersionTypeStatusComment
Java 8LTSLegacyStill present in old systems.
Java 11LTSLegacyWas the standard for years.
Java 17LTSMaintenanceStill common in production.
Java 21LTSCurrentA modern and widely supported base.
Java 25LTSLatestThe course’s reference and the recommended option to start with.

In this course we will use Java 25. When choosing another version for a real project, also check which versions its libraries and deployment platform support.

Why is Java still relevant?

Sometimes you’ll read around that “Java is dying.” They’ve been saying that for 15 years. The reality is that Java is more alive than ever, and here are three reasons:

  1. Backend Ecosystem: Many organizations use Java for their services, and frameworks like Spring Boot have very wide adoption.
  2. Performance and Scalability: The JVM has been improving memory management, dynamic compilation, and concurrency for decades.
  3. Constant Evolution: Java has managed to modernize itself. It has adopted features from functional programming, reduced its “verbosity,” and improved its syntax. Today’s Java is not the slow and heavy Java of 2005.