Monday, October 11, 2010

IBM and Oracle Are Behind OpenJDK!

Years from now, when we all bore our grandchildren with stories of the history of the Java programming language, the date of 11 October 2010 may be considered a landmark date in Java's history. For on that date, the two biggest players in all of Javadom agreed to collaborate on OpenJDK. In this post, I briefly look at the long and winding road that got us here (see The Java History Timeline for additional details).

1991 Project Green

1992 Programming language is called "Oak" (sadly also marked Johnny Carson's exit from late night television's The Tonight Show)

1995 "Oak" renamed to "Java"

1996 First JavaOne Conference and JDK 1.0 (Java Development Kit) released

1997 JDK 1.1 released

1998 Java Community Process (JCP) formalized and JDK 1.2 released

2000 Apple commits to Java support at 2000 JavaOne and JDK 1.3 (Kestrel) released
 
2002 JDK 1.4.0 (Merlin) and JDK 1.4.1 (Hopper) released

2003 JDK 1.4.2 (Mantis) released

2004 J2SE 5 (Tiger/1.5.0) released along with version naming change

2005 Apache Harmony announced as an open source and free Java implementation

2006 Java SE 6 (1.6.0) released and Sun begins open sourcing Java

2007 OpenJDK comes to life

2009 Oracle purchases Sun (and Java) after IBM attempt to purchase Sun falls through

2010 Oracle sues Google over Android platform, Google boycotts JavaOne 2010, and IBM and Oracle announce IBM's commitment to collaborating on OpenJDK development


Today's announcement that IBM will collaborate on OpenJDK comes at an important time for the Java community. For years, Java developers wondered if Sun would ever open source Java. Recently, some have questioned Oracle's commitment to open source. Today's announcement may mean the most support for OpenJDK since its announcement with two major and well-funded sponsors in Oracle and IBM. It also appears to solidify Oracle's commitment to an open source Java. It is certainly in IBM's interest to have an open source Java, but it also can aid Oracle in terms of credibility in the Java community. OpenJDK offers one of those proverbial "win-win" situations for these two companies, but should benefit the rest of us "little people" as well.

The timing of this announcement was important. As the press release states, this announcement may reassure individuals and organizations who have invested significantly in Java-based applications. It may similarly reassure potential future customers. In addition, this announcement can be interpreted as a sign of how Oracle intends to fulfill its commitment to an open source Java. This is certainly a major announcement that should please most Java developers.

With an open source version of Java supported by the two largest players in the Java space available now, there will be some questions about the future of Apache Harmony. Choice is always preferable, but that doesn't necessarily mean the demand will be great enough to justify the effort. Indeed, Bob Sutor's post IBM Joins the OpenJDK Community, will help unify open source Java efforts states the following:
IBM will work with Oracle and the Java community to make OpenJDK the primary high performance open source runtime for Java. IBM will be shifting its development effort from the Apache Project Harmony to OpenJDK. ... We think this is the pragmatic choice. It became clear to us that first Sun and then Oracle were never planning to make the important test and certification tests for Java, the Java SE TCK, available to Apache. We disagreed with this choice, but it was not ours to make. So rather than continue to drive Harmony as an unofficial and uncertified Java effort, we decided to shift direction and put our efforts into OpenJDK.
I am also curious (and I'm not the only one) to see if Google will elect to join the OpenJDK and JCP processes or continue to go it alone. The Googling Google blog looks at the relationship between Oracle, IBM, and Google related to today's announcement in the post IBM and Oracle vs. Android? Good luck with that.

Overall, it's nice to see some news in the Java world related to convergence rather than divergence.

Related Resources

There are too many related posts and articles related to this announcement to list here, but I do list a few as a sample.