History Of Java
Today Java is one of the most popular and in-demand programming languages in the world, with over millions of Java developers and thousands of people learning Java online every year because Java is universally used across industries and for a variety of business purposes.
As you may or may not know, Java has a long (almost three decades long in fact) history. Born in the early 1990s as Project Oak, originally Java was designed to become a niche programming language meant to be used in the digital cable television industry to program digital devices such as set-top boxes and smart TVs.
It took years and multiple changes to bring Java where it is now. As the saying goes, return to the root and you will find the meaning.
Knowing that the majority of people learning Java and even professional Java developers typically lack the knowledge of how Java was developed and evolved over the time, we thought it would be a good idea to explore the history of Java in more detail.
Java: the roots
Java was born in June 1991 as a project called “Oak” under the development by a small team of engineers working for Sun Microsystems. They called themselves the Green Team: James Gosling, Mike Sheridan, and Patrick Naughton. And the word “Oak” was picked to name the new technology because the Oak tree is a symbol of strength and durability. Time has shown that this name ended up being very much appropriate and even prophetic despite it being changed to Javain 1995 due to the fact that Oak was already registered as part of another trademark.
James Gosling was the head of the project, and his original goal was to create an object-oriented programming language that could implement a virtual machine and would be simpler and more universal than C/C++, but at the same time would have syntax similar to C/C++ to make it easy to learn and use by current programmers who are well-familiar with C notation.
The new programming language was originally designed mainly for the digital cable television industry, to program the new generation of TVs with smart functions and various set-top-box devices.
Java: a new hope
The development of a new programming language was finished only in 1995. And early in 1996, Sun Microsystems released the first public implementation of Java 1.0.
“Java’s write-once-run-everywhere capability along with its easy accessibility have propelled the software and Internet communities to embrace it as the de facto standard for writing applications for complex networks. We’re delighted to invite developers to download Java 1.0 immediately and start building the next killer application,” said Sun Microsystems in the press-release announcing the launch of Java.
Prior to the release, in 1995, the project was renamed from Oak to Java. The reason: the original name was already a trademark by Oak Technologies. According to James Gosling, they had various other options to use as a new name, including “dynamic”, “revolutionary”, “jolt”, and “DNA”, as something that would reflect the evolutionary, dynamic and long-lasting nature of this technology.
“Java was one of the top choices along with Silk,” said Gosling. Eventually, while having a cup of coffee, he decided to make Java the final pick, naming the language after an island in Indonesia where the first coffee was produced.
Java: revolution
Was Java really a revolution in software development at the time? Well, it would be more accurate to say that it was a much-needed solution that was rather quickly adapted by the market.
The idea to use Java mainly as a cable television devices programming language was dropped somewhere in the middle of Java development as the developers realized that it is too advanced to be incorporated by the digital cable television industry at the time. Instead, Java had all the qualities required for internet programming, which was booming in the 1990s.
Java was based on the “Write Once, Run Anywhere” promise, supporting free runtimes on popular platforms. It also offered a lot more security compared to C/C++, supporting configurable security options, which allowed programmers to easily limit the access to certain networks and/or files. According to the developers, they developed Java to be in line with several core principles:
- Simple,
- Robust,
- Portable,
- Platform-independent,
- Secured,
- High Performance,
- Multithreaded,
- Architecture Neutral,
- Object-Oriented,
- Interpreted,
- Dynamic.
They had five primary goals when developing this programming language. Java had to:
- Use the object-oriented programming methodology.
- Support executing of the same code on multiple platforms and operating systems.
- Built-in computer network support.
- Allow secure execution of code from remote sources.
- Be easy to learn and use.
Java: rise to glory
Soon after Java 1 was released, all the major web browsers incorporated the ability to run Java applets within web pages, which made Java one of the most mainstream technologies in internet programming. Java 2 (initially released as J2SE 1.2 in the end of 1998) added multiple configurations built for different types of platforms. J2EE included technologies and APIs for enterprise applications typically run in server environments, while J2ME added APIs optimized for mobile applications.
In November of 2006, Sun released much of its Java virtual machine (JVM) under the GNU General Public License as free and open-source software. In May 2007 they completed the process of making Java open source by fully accessing JVM’s core code.
In April of 2009, Oracle Corporation completed the acquisition of Sun Microsystems and with it acquired all the rights on Java technologies developed by Sun’s developers within the Green Team. James Gosling resigned from Oracle a year later, in April of 2020.
Java: a new era
The biggest change in Java technologies development under Oracle came in 2017, when they announced that Java will be moved to a new release cycle, with a new version launched every six months, as a way to make sure Java-related technologies are updated timely in accordance with the needs and requirements of the modern-day market. The change took place after the relese of Java9 in September of 2017.
Along with the new release cycle, Oracle also announced a major shift in how they build and release Java. The proprietary-licensed Oracle JDK was replaced by Open JDK binaries as the primary release artifact distributed by Oracle.
According to Mark Reinhold, chief architect for Java, delays with Java 8 and 9 were the main reason why they decided to adopt the new model. “Java’s current release cycle is intended to be two years, but Java 9 has encountered significant delays due to the Java Platform Modules System (Jigsaw) and is now around 18 months late. Java 8 was also delayed for around eight months in order to address security issues. Under the new release schedule Oracle proposes strict time-based releases, known as feature releases. These will appear every year in March and September and will have version numbers of the form 18.3, 18.9, 19.3 and so on. Unlike the current train-based model, these releases will not be delayed to accommodate a major feature. New features will not be merged to a release source control repo until they are feature complete — if they miss a release, they must be retargeted for the following release or later,” Reinhold said.
As of September 2021, the latest version is Java 16 or JDK 16 released on March 16th, 2021. Java 16 had 17 new enhancements to the platform that will further improve developer productivity. “The power of the six-month release cadence was on full display with the latest release. Pattern Matching and Records were introduced a year ago as part of JDK 14 and have since gone through multiple rounds of community feedback based on real-world applications. This process has not only given Java developers the opportunity to experiment with these features before they were finalized but also incorporated that critical feedback which has resulted in two rock-solid JEPs that truly meet the needs of the community,” said Georges Saab, vice president of development, Java Platform Group, Oracle.
Java 11, released on September 25, 2018, is a currently supported long-term support (LTS) version. JDK 17 is currently in progress with early-access builds and will become the next LTS (Long Term Support) JDK.
Java: the future
Today Java is well-known as one of the most versatile programming languages in the world. It is used almost everywhere in terms of platforms, technologies and economy sectors: billions of Android phones are all running Java; many games are developed and maintained in Java; not to mention the extensive use of Java on enterprise-level server applications.
The need for qualified and experienced Java developers around the world keeps increasing despite the fact there are so many Java coders out there already, as new trending niches, including AI, Big Data, IoT, Blockchain and others, rely on Java a lot.