It is hard to believe, but enterprise Java has existed as we know it for more than 20 years. In December of 1999, the Java 2 Platform, Enterprise Edition (formerly J2EE, now called Java EE or Jakarta EE) was introduced.
J2EE built on the “write once, run anywhere” mentality of the Java programming language, but made it enterprise-ready by extending the neutrality and portability with specifications that are better suited to build large-scale applications. It also built on years of work on distributed systems, such as the Common Object Request Broker Architecture (CORBA) and the Distributed Computing Environment (DCE).
Since its birth in 1999, J2EE has played a powerful role in shaping enterprise applications as we know them today. This article will take a look back at the influential programming platform and what is next.
First, for context, it’s important to note that the enterprise Java platform is not the same thing as the Java programming language, though they are related. Java, the object-oriented programming language, was started as a project called Oak in 1991 by James Gosling and some of his colleagues at Sun Microsystems. The language is coming up on its 25th anniversary, and is important to note for the history of J2EE. The original goals of Java were to create a language that had a familiar notation (drawing parallels to C/C++) but that had greater uniformity and simplicity. Java was also intended to be assembled as a byte code and then run using a Java Virtual Machine (JVM).
Java wasn’t publicly released until about four years later, in 1995, from Sun. This came at a pivotal time for the world as we know it: the World Wide Web was rising in popularity, and Netscape announced that it would include support for Java in its web browser. Four years later in 1999, when J2EE was released, the industry was going through yet another critical shift when it came to how the world was using the internet: it was becoming something enterprises were not only thinking about, but realized they needed a strategy for.
The shift to including Java in the enterprise came naturally because it already had developed a loyal following of developers, both within and outside of Sun. The next few years saw continued innovations in the space, and in 2006, Sun renamed J2EE as Java Enterprise Edition (Java EE). This was the same year that Red Hat acquired JBoss. Later that year, Java was formally open sourced by Sun releasing its core Java technologies under the GNU General Public Licence 2.0 (GPLv2). This was one of the most important steps in Java becoming a collaborative, community driven language.
One of the other major milestones in Java EE was when Oracle acquired Sun in January of 2010. In the years that followed, the Java EE release cadence slowed considerably. At the same time, the enterprise IT landscape was actively shifting from large, monolithic applications toward lighter and more modular application architectures. Java EE was an enabler of the old way of creating enterprise apps, so it also needed to shift to keep up with the times.
To meet this need, members of the Java community came together in 2016 to create MicroProfile, now a part of the Eclipse Foundation, which is designed to help optimize enterprise Java for microservices architectures. This shift aligns with the general trend of enterprises moving to smaller and lighter applications and making them cloud native. MicroProfile took into account the needs of the developers while still enabling Java to be used front and center. This played a role in Oracle’s decision to donate Java EE to the Eclipse Foundation in 2017, where innovation around microservices could happen quicker and more efficiently. Java EE has since been renamed to Jakarta EE and has a robust community behind it to support the development of even more innovations in enterprise Java.
In fact, Java has become such a staple in the creation of enterprise apps that there are now projects and frameworks popping up designed to better support it, such as Quarkus, which aims to help Java developers use enterprise Java for new workloads that take advantage of things like containers and serverless. The Quarkus project aims to give enterprise Java a better cloud-native future.
Enterprise Java has had a long history, bringing with it many innovations and new ways of thinking and working. I am excited to see what the next 20 years (and beyond) hold.