The fascinating history of the object-oriented programming language known
today, Java, begins in the early 1990s. It all started when James Gosling, a
talented developer at Sun Microsystems, set out on a mission to create a new
programming language for digital devices such as set-top boxes and
televisions. Initially, Gosling and his team considered the project to use C
++. However, they soon realized that C ++ was not suitable for their needs
because it needed more memories than it was available on the devices they
targeted. Undeterred, Gosling began modifying and extending C++ to meet
their requirements.
After struggling with the limitations of C++, Gosling decided to create a
new platform called Green. The project was originally called "Greentalk" and
had the file extension .gt. However, as the project grew, the team decided
to change the name to "Oak".
Gosling chose the name "Oak" because of the oak tree outside his office. Oak
is a symbol of strength and robustness, and the team wanted to incorporate
these qualities into their new programming language. But the name had to be
changed to "JAVA" because "JAVA" was already a trademark of Oak
Technologies. During brainstorming sessions to find a new name, Gosling and
his team considered several options, including DNA, SILK and RUBY. Finally,
they were inspired by the type of coffee bean and chose "Java". Gosling came
up with the name while drinking coffee near his office and thought it was a
unique and fitting name for their project.
Java was built on a number of key principles, including intelligence,
portability, platform independence, high performance, and multithreading.
These principles have guided the development of Java from its inception to
the present day.
In 1995, Java was released to the public and quickly became popular. Time
Magazine named it one of the ten best products of 1995, cementing its status
as a revolutionary technology.
Since JDK 1.0, the Java language has undergone several changes, including
the addition of various classes and packages to the standard library.
Additionally, the Java class library has evolved significantly over time,
expanding from hundreds of classes in JDK 1.0 to over three thousand
classes in J2SE 5.
Version | Release Date | Major changes |
---|---|---|
JDK Beta | 1995 | |
JDK 1.0 | January 1996 | The Very first version was released on January 23, 1996. The principal stable variant, JDK 1.0.2, is called Java 1. |
JDK 1.1 | February 1997 | There were many additions in JDK 1.1 as compared to version 1.0 such as - A broad retooling of the AWT occasion show - Inner classes added to the language - JavaBeans - JDBC - RMI |
J2SE 1.2 | December 1998 | “Play area” was the codename which was given to this form and was released on 8th December 1998. Its real expansion included: strictfp keyword - the Swing graphical API was coordinated into the centre classes - Sun’s JVM was outfitted with a JIT compiler out of the blue - Java module - Java IDL, an IDL usage for CORBA interoperability - Collections system |
J2SE 1.3 | May 2000 | Codename- “KESTREL” Release Date- 8th May 2000 Additions: - HotSpot JVM included - Java Naming and Directory Interface - JPDA - JavaSound - Synthetic proxy classes |
J2SE 1.4 | February 2002 | Codename- “Merlin” Release Date- 6th February 2002 Additions: Library improvements - Regular expressions modelled after Perl regular expressions - The image I/O API for reading and writing images in formats like JPEG and PNG - Integrated XML parser and XSLT processor (JAXP) (specified in JSR 5 and JSR 63) -Preferences API (java.util.prefs) Public Support and security updates for this version ended in October 2008. |
J2SE 5.0 | September 2004 | Codename- “Tiger” Release Date- “30th September 2004” Originally numbered as 1.5 which is still used as its internal version. Added several new language features such as: - for-each loop -Generics -Autoboxing - Var-args |
JAVA SE 6 | December 2006 | Codename- “Mustang” Released Date- 11th December 2006 Packaged with a database supervisor and encourages the utilization of scripting languages with the JVM. Replaced the name J2SE with java SE and dropped the .0 from the version number. Additions: - Upgrade of JAXB to version 2.0: Including integration of a StAX parser. - Support for pluggable annotations (JSR 269). - JDBC 4.0 support (JSR 221) |
JAVA SE 7 | July 2011 | Codename- “Dolphin” Release Date- 7th July 2011 Added small language changes including strings in the switch. The JVM was extended with support for dynamic languages. Additions: - Compressed 64-bit pointers. - Binary Integer Literals. - Upstream updates to XML and Unicode. |
JAVA SE 8 | March 2014 | Released Date- 18th March 2014 Language level support for lambda expressions and default methods and a new date and time API inspired by Joda Time. |
JAVA SE 9 | September 2017 | Release Date: 21st September 2017 Project Jigsaw: designing and implementing a standard, a module system for the Java SE platform, and to apply that system to the platform itself and the JDK. |
JAVA SE 10 | March 2018 | Released Date- 20th March Addition: - Additional Unicode language-tag extensions - Root certificates - Thread-local handshakes - Heap allocation on alternative memory devices - Remove the native-header generation tool – javah. - Consolidate the JDK forest into a single repository. |
JAVA SE 11 | September 2018 | Released Date- 25th September, 2018 Additions- - Dynamic class-file constants - Epsilon: a no-op garbage collector - The local-variable syntax for lambda parameters - Low-overhead heap profiling - HTTP client (standard) Transport Layer Security (TLS) 1.3 - Flight recorder |
JAVA SE 12 | March 2019 | Released Date- 19th March 2019 Additions- - Shenandoah: A Low-Pause-Time Garbage Collector (Experimental) - Microbenchmark Suite - Switch - Expressions (Preview) - JVM Constants API - One AArch64 Port, Not Two - Default CDS Archives |
JAVA SE 13 | September 2019 | Released Date – 17th September 2019 Additions- - Text Blocks (Multiline strings). - Switch Expressions. - Enhanced Thread-local handshakes. |
JAVA SE 14 | March 2020 | Released Date – 17th March 2020 Additions- - Records (new class type for data modeling). - Pattern Matching for instanceof. -Helpful NullPointerExceptions. |
JAVA SE 15 | September 2020 | Released Date – 15th September 2020 Additions- - Sealed Classes. - Hidden Classes. - Foreign Function and Memory API (Incubator). |
JAVA SE 16 | March 2021 | Released Date – 16th March 2021 Additions- - Records (preview feature). - Pattern Matching for switch (preview feature). - Unix Domain Socket Channel (Incubator). |
JAVA SE 17 | September 2021 | Released Date – 14th September 2021 Additions- - Sealed Classes (finalized). - Pattern Matching for instanceof (finalized). - Strong encapsulation of JDK internals by default. - New macOS rendering pipeline. |
The language has evolved and new features have been added to the standard
library. Today, Java is used in a wide variety of applications, including
web programming, mobile devices, games, e-commerce solutions, and more. Java
began as a project to create a new programming language for digital devices
and has since become one of the most widely used and influential programming
languages in the world. Its influence on the world of technology is
undeniable, and its history is a testament to the power and persistence of
innovation.