WhaTap Lab is sensitive to the programming languages and versions used by our clients as we analyze the performance of IT services. Java, in particular, is frequently mentioned in development and business meetings due to its widespread use in enterprise business. The range of analyzable data varies depending on the Java version, making it a crucial language for discussion. However, Java has diverse versions, and even the nomenclature used by developers or business stakeholders to refer to a version may differ. This discrepancy arises from the distinct rules governing product versions and developer versions in Java, a fact that is not widely known.
Therefore, I will discuss how the versioning rules for Java were established, why there is a distinction between developer and product versions, and delve into the major features of each Java version and the IT landscape at the time of their release.
Java is currently a language used in web development, but it was not originally created for web services. It originated from the efforts of the Green Team, who anticipated the growth of the home appliance market. In the process of creating a language that could operate independently across various processes in home appliances, Java was born.
Leading the workstation computer market, Sun Microsystems created the Green Project, comprised of experts, to secure a leading position in future markets. This project included Patrick Naughton, Mike Sheridan, and James Gosling.
The development of a language that is process-independent commenced in 1991
Those involved in the Green Project initially gathered to contemplate their course of action. Recognizing the growing market for home appliances, they identified the necessity for a process-independent language to be used in the processes of these expanding appliances. Consequently, they selected smart home appliances as the delivery platform and James Gosling commenced the development of a new language called Oak.
Within the Green team, an innovative two-way portable entertainment device named Star7 was developed to showcase the potential of a process-independent language. At that time, cable companies showed no interest in such pioneering technology, and it took two decades for touch-based devices to gain popularity. In retrospect, Star7 was a remarkably advanced technology. Star7 integrated Green OS, the Oak programming language, a toolkit, libraries, and hardware. Oak, the precursor to Java, was a process-independent language specifically written by James Gosling for Star7. Below is a link to a YouTube demo video of Star7. This is a demo video of James Gosling's Star7, filmed in a basement. Despite the close-up of James Gosling's face, it is recommended to watch the video to gain insights.
The Green Team came to the realization that the smart home appliance market was not as promising as initially thought. Subsequently, they received a proposal to contribute to the operating system of a Set-Top Box (STB) for interactive television. Swiftly transitioning from the smart home appliance market to the Set-Top Box operating system market, the Green Team encountered challenges and ultimately faced failure in entering the market. As for Star7, its fate remains uncertain.
The Green Team recognizes the need for compact, platform-independent, and stable code, which is characteristic of the language used in Set-Top Box software, even in the early requirements of the web. As the Green Team embarks on its third web-based project, Patrick Naugton draws inspiration from the weekend to develop a prototype browser named "WebRunner."
The product names for Java are introduced based on Java Standard Edition. Oracle has made changes to the product names since their release, and to minimize confusion, we will provide explanations based on the names currently used by Oracle.
Due to trademark issues, Oak was renamed to Java. Java 1.0a2 was introduced at the SunWorld Conference along with the HotJava browser. During the SunWorld conference, it was announced that Java support will be included in the Netscape browser.
The first version of Java is announced. The initial stable release is JDK 1.0.2, which is referred to as Java 1.
In 1996, over 6,000 developers participated in the first JavaOne event. A completely new market opened up around a language that had been introduced less than a year ago. The event saw the participation of over 160 businesses showcasing products and services related to Java.
The Java Standard Edition designation was not in use at the time of its announcement. It was introduced as Java Development Kit 1.1. Java Development Kit 1.1 (JDK 1.1) garnered over 220,000 downloads in just three weeks. Java grew to become the second most widely used language in the world, adopted by around 400,000 developers. In 1997, the JavaOne event attracted over 10,000 developers, fostering discussions on Java's security, compatibility, and its future in devices.
At the time of its announcement, the Java Standard Edition, codenamed Playground, was initially named Java 2 Standard Edition 1.2. Due to the significant changes in the product, it was rebranded as Java 2. The abbreviation for Java 2 Standard Edition Software Development Kit is Java2SDK, although in the Java community, it continued to be referred to as JDK 1.2. From JDK 1.2 onwards, Java products are categorized into Standard, Enterprise, and Micro.
The original product name for Java Standard Edition 1.3, codenamed Kestrel, was Java 2 Standard Edition 1.3.
At the JavaOne developer conference, Apple's co-founder Steve Jobs and Sun's Chairman and CEO Scott McNealy announced that they would bundle Java 2 Standard Edition with the standard Mac OS operating system.
Java Standard Edition (J2SE) 1.4, codenamed Merlin, is announced. The official name at the time of the announcement is Java 2 Platform, Standard Edition 1.4. Java SE 1.4 is still in use in various modern applications today. Some Java platforms installed in domestic public institutions are still based on Java Standard Edition 1.4. From Java 2 Standard Edition 1.4 onwards, it is managed as open source under the Java Community Process (JCP).
The product names are as follows.
The following output is displayed when querying the version using the command-line interface.
The code name Tiger is being released. "Java 2" has been changed to "Java." Additionally, the version is announced as 5.0 instead of 1.5, following the current naming convention, and is released as Java Platform, Standard Edition 5.0.
A major debate at the JavaOne developer conference revolved around whether Java should be open source. Sun officially demanded that Java-based projects be certified to be compatible with the Java specifications. However, proponents of open source advocated for a more freely available form of Java. James Gosling opposed allowing multiple open-source implementations of Java technology, expressing concerns that it could lead to incompatibility with Unix.
WhaTap's core monitoring feature, Active Stack, has been supported since Java SE 5.
The product names are as follows.
The following output is displayed when querying the version using the command-line interface.
Code name Mustang is being released. The product is announced as Java Platform, Standard Edition 6 (Java SE 6).
In 2007, Sun released the complete source code of the Java Class Library under the GPL (General Public License). (excluding components licensed by Sun.) The release coincided with the launch of the iPhone in the same year, marking 15 years since the insertion of Oak in the Star7 demo.
In 2008, Sun did not announce a new version of Java, as it had done every two years. The acquisition announcement of Sun by Oracle took place during the opening session of the 2009 JavaOne developer conference. It wasn't until 2010 that the Java Community Process (JCP) approved the roadmaps for Java 7 and Java 8.
The product names are as follows.
The following output is displayed when querying the version using the command-line interface.
From JDK 1.0 to JDK 6, updates were released every two years. However, JDK 7 experienced a longer gap and was updated after a five-year interval. The code name for JDK 7 is Dolphin.
The product names are as follows.
The following output is displayed when querying the version using the command-line interface.
Until the release of JDK 7, Java underwent various setbacks, including Sun being acquired by Oracle. Facing delays in updates, Oracle decided to gather certain specifications and proceed with an update. Consequently, JDK 1.7 did not incorporate highly anticipated features such as Lambda and Jigsaw.
George Saab, the Vice President of the Oracle Java Group, has expressed that the extended duration between JDK 6 and 7 was one of the most disappointing events in the history of Java.
There was a particularly challenging period after JDK 6. It took a considerable amount of time to transition to Java 7 and beyond. The economic difficulties at the time played a role, but a significant amount of time and effort was invested in bringing the JDK codebase into OpenJDK. The prolonged duration until the next major release was disappointing, considering various factors, but ultimately, it was part of the process that led to the formation of the current OpenJDK community and the release of Java 7 and 8.
- Excerpt from an Interview with George Saab, Vice President of Oracle Java Group, on the occasion of Java's 20th anniversary: "Successes and Failures, and the Future of Java." -
Since the release of JDK 1.7 in 2011, there was a three-year gap before the next update in 2014. However, many changes that couldn't be implemented in 1.7 were incorporated into JDK 1.8.
Currently, JavaFX has become a deprecated Rich Internet Technology.
At JavaOne, Oracle declared a release cycle for Oracle JDK to be every 6 months. Versions 9 and 10 were released as non-LTS (Long-Term Support); therefore, after the initial 6-month free updates, patches were provided.
In 2018, Oracle's decision to advance the release cycle of new versions raised concerns regarding paid patches. While most developers were satisfied with Java Standard Edition 8 it, over time, there will be a transition to newer Java versions. At that point, it remains uncertain where developers in the Java community will shift towards.
Java is truly a versatile language that has evolved over a significant period. Throughout this extended journey, Java has continued to advance, bringing it to its present state. There are undoubtedly profound considerations within this process, and even in seemingly straightforward tasks such as determining versions, there must have been challenging decisions. At some point, we might find ourselves building services or open-source projects that require long-term development. It would be beneficial to reflect on the history of Java and strive to create a more streamlined and impressive business when that time comes.