History of Java language

Dear  Friends,

Let us see evaluation of one of the most used programming language today i.e Java.

  • Java language project was started in June 1991 by team of engineers in Sun microsystem including James Gosling, Mike Sheridan, and Patrick Naughton known by Green Team and lead by James Gosling.
    James Gosling
  • Java was originally designed for interactive television, but it was too advanced for the digital cable television industry at the time.But it was just right for the Internet, which was just starting to take off. In 1995, the team announced that the Netscape Navigator Internet browser would incorporate Java technology.
  • The language was initially called Oak after an Oak tree that stood outside Gosling's office. However they could not continue with this name as it was already trademarked by Oak Technologies.
  • After lot of brainstorming,team came up with few names  like DNA,Silk,Java,Lyric,pepper,Neon,Dynamic,Jolt,revolutionary and few others.
  • DNA,Silk and Java were among shortlisted names and finally Java was selected as final name from Java Coffee.
  • Sun Microsystems released the first public implementation as Java 1.0 in 1995.It promised "Write Once, Run Anywhere" (WORA), providing no-cost run-times on popular platforms.  Major web browsers soon incorporated the ability to run Java Applets within web pages, and Java quickly became popular. The Java 1.0 compiler was re-written in Java by Arthur van Hoff to comply strictly with the Java 1.0 language specification.
  • Today, Java not only permeates the Internet, but also is the invisible force behind many of the applications and devices that power our day-to-day lives. From mobile phones to handheld devices, games and navigation systems to e-business solutions, Java is everywhere!

Here is the history of all Java releases with language features included in each release.

Version 1.0

Code named Oak and released on January 23, 1996

Version 1.1

Released on February 19, 1997
New features in JDK 1.1
JDBC (Java Database Connectivity)
Inner Classes
Java Beans
RMI (Remote Method Invocation)
Reflection (introspection only)

Version 1.2

Code named Playground and released on December 8, 1998.
New features in J2SE 1.2
Collections framework.
Java String memory map for constants.
Just In Time (JIT) compiler.
Jar Signer for signing Java ARchive (JAR) files.
Policy Tool for granting access to system resources.
Java Foundation Classes (JFC) which consists of Swing 1.0, Drag and Drop, and Java 2D class libraries.
Java Plug-in
Scrollable result sets, BLOB, CLOB, batch update, user-defined types in JDBC.
Audio support in Applets.

Version 1.3

Code named Kestrel and released on May 8, 2000
New features in J2SE 1.3
Java Sound
Jar Indexing
A huge list of enhancements in almost all the java area.

Version 1.4

Code named Merlin and released on February 6, 2002 (first release under JCP).
New features in J2SE 1.4
XML Processing
Java Print Service
Logging API
Java Web Start
Preferences API
Chained Exception
IPv6 Support
Regular Expressions
Image I/O API

Version 1.5

Code named Tiger and released on September 30, 2004
New features in J2SE 5.0
Enhanced for Loop
Typesafe Enums
Static Import
Metadata (Annotations)

Version  1.6

Code named Mustang and released on December 11, 2006.
New features in Java SE 6
Scripting Language Support
Java Compiler API
Pluggable Annotations
Native PKI, Java GSS, Kerberos and LDAP support.
Integrated Web Services.
Lot more enhancements.

Version 1.7

Code named Dolphin and released on July 28, 2011
New features in Java SE 7
Strings in switch Statement
Type Inference for Generic Instance Creation
Try with Resources
Multiple Exception Handling
Re-throwing exceptions with more inclusive type checking
Underscore in literals
Binary Literals
Java nio Package

Version 1.8

Lambda Expressions
Functional Interfaces
Default Methods in Interface
Static Methods in Interface
Optional class
Method Reference
Stream API
Method parameter Reflection
Enhanced Collection API

Version 1.9

JPMS (Java Platform Module System)
Process API updates
Try with Resource Enhancements
Stream API Enhancements
Diamond operator Enhancement
Private Method in Interface
Http 2 Client
Safe varargs annotation

Version 1.10

Optional.orElseThrow() method
APIs for creating an Unmodifiable collection
System property to disable JRE last usage tracking
Hashed passwords for out of box JMX agent
Parallel full GC for GC1
Root Certificates
TLS session hash and extended master secret extension support
Bytecode generation for Enhanced for loop
Javadoc support for multiple Stylesheets
Overriding methods that don't change the specification
Comment tag for the summary of an API description

Thanks for reading.If you found it helpful,share it with others to whom it may be helpful.