Microsoft's .NET environment, announced a few years after Java, adopted a very
similar approach to platform architecture.
One important difference between Microsoft's .NET platform and Java is that Java
was always conceived as a relatively open ecosystem of multiple vendors. Through‐
out Java's history, these vendors both cooperated and competed on aspects of Java
One of the main reasons for the success of Java is that this ecosystem is a standar‐
dized environment. This means there are specifications for the technologies that
comprise the environment. These standards give the developer and consumer confi‐
dence that the technology will be compatible with other components, even if they
come from a different technology vendor.
The current steward of Java is Oracle Corporation (who acquired Sun
Microsystems, the originator of Java). Other corporations, such as Red Hat, IBM,
Hewlett-Packard, SAP, Apple, and Fujitsu are also heavily involved in producing
implementations of standardized Java technologies.
There is also an open source version of Java, called OpenJDK, which many of these
companies collaborate on.
Java actually comprises several different, but related environments and specifica‐
tions—Java Mobile Edition (Java ME), Java Standard Edition (Java SE), and Java
Enterprise Edition (Java EE). In this topic, we'll only cover Java SE, version 8.
We will have more to say about standardization later, so let's move on to discuss the
Java language and JVM as separate, but related concepts.
What Is the Java Language?
Java programs are written as source code in the Java language. This is a human-
readable programming language, which is class based and object oriented. It is
considered to be relatively easy to read and write (if occasionally a bit verbose).
Java is intended to be easy to learn and to teach. It builds on industry experience
with languages like C++ and tries to remove complex features as well as preserving
“what works” from previous programming languages.
Overall, Java is intended to provide a stable, solid base for companies to develop
As a programming language, it has a relatively conservative design and a slow rate
of change. These properties are a conscious attempt to serve the goal of protecting
the investment that businesses have made in Java technology.
The language has undergone gradual revision (but no complete rewrites) since its
inception in 1996. This does mean that some of Java's original design choices, which
were expedient in the late 1990s, are still affecting the language today—see Chapters
2 and 3 for more details.