chris - Fotolia

A brief history of Java: How it forever changed programming

The Java programming language is an important tool in an application developer's quiver. But Java has also undergone many changes on the road to becoming the standard it is today.

The Java programming language emerged roughly 25 years ago, when Smalltalk and C++ dominated. Back then it was easy to argue that the world didn't need another object-oriented programming language.

Fast forward to today -- Java is a mainstay of enterprise application development. Let's look at the history of Java and how it became a go-to programming language for developers everywhere.

Humble Java beginnings

Enterprise Java arrived at a pivotal time in the history of enterprise computing. J2EE 1.2 -- the original name for what would eventually become Java EE -- was introduced by Sun Microsystems in 1999. The release was momentous in that it changed how enterprises thought about and interacted with the web.

In those days, the web was unexploited -- enterprises had yet to create web strategies. Java made a name for itself early as the first popular internet browser, Netscape Navigator, offered Java support. This fortunate occurrence helped Java land a place in the world of application development where it would eventually catch fire.

Watching as Java gained popularity with a loyal following, Sun Microsystems extended the language into traditional enterprise app dev. Two events nudged Java along -- the launch of J2EE and the fact that the application server gained prominence. Now enterprises had a platform that would meet their needs for security, scalability and reliability.

Evolution of the language

J2EE 1.3 was released in 2001, and this enterprise version of Java was built upon the ethos and value of the language -- "write once, run anywhere." The release allowed for portability across various Java available application servers. But it took a while to catch on. It wasn't until J2EE v.5 or v.6 before it gained a partial footing. Even then, many enterprises had adopted elements of Java, picking what would work in their unique circumstance.  

At the time of the J2EE 6 release, Sun released the source code under the GPLv2. This was significant in the history of Java now on the road to become a collaborative, community-oriented language. While this process had some challenges, it did inject new life into Java as a platform. Organizations that were otherwise competitors, were now collaborators.  

Major Java EE developments

And as the IT industry has evolved, Java EE has played a major role in enterprise application development growth. While there are many feathers in the Java platform's cap, here are three of my top moments in the history of Java.

  • Servlets: played a crucial role in how enterprises can better embrace Java for business-critical workloads. It allows developers to extend the core infrastructure capabilities of the application server, which includes things like speed, reliability and security, to applications used to build the servers.
  • Contexts and Dependency Injection (CDI): first introduced in the Java EE 6 release in 2009. CDI introduced a new way to manage components across application layers. It offered developers more flexibility and control of the Java EE platform.
  • Java Persistence API (JPA): designed to give developers a more consistent and straightforward way to define and manage data in Java apps. JPA is important to maintain the state of key business objects.

Continued evolution

In 2016, the Java community released the MicroProfile project to optimize Java for microservices architecture and smaller, more lightweight applications. By 2017, Java EE moved under the Eclipse Foundation umbrella in the hope that this close alignment would improve work around the speed and fluidity efforts of microservices and MicroProfile. Java EE was rebranded as Jakarta EE, though its principles remained intact, which will ensure that the Java platform remains influential in the realm of software development for many years to come.

Dig Deeper on Core Java APIs and programming techniques