; Date: October 30, 2019
I joined Sun Microsystems in 1998 to work in the Java SE team. At that time there was a huge worry that Microsoft would embrace and extend the Internet, and that the World Wide Web would become beholden to Microsoft's Technologies. That is not hyperbole, it was a real concern. To many, Java was the home turf of the anti-Microsoft movement.
I was there when Sun Microsystems won a $2 Billion settlement because Microsoft violated the terms of its contract with Sun for the use of Java technology and trademarks. There was a big party in the space between the two halves of the CUP02 (Cupertino #2) building which housed the Java SE team. And later Sun Microsystems used that $2 billion to buy a company whose product line focused on storing data on tapes. Mag tape storage systems in the 2000's? What was Scott McNeally smoking when he agreed to that deal? What's worse is that Jonathan Schwartz joined Sun as a result of that purchase, and it was Schwartz that many think flew Sun Microsystems into the ground.
Being that as it may.... why did Microsoft have to pay a $2 billion settlement to Sun Microsystems? They were delivering Java implementations for Windows, but Microsoft's Java implementation was incompatible with the Java Specification in many ways. The Java Specification is what guarantees the Compatibility promise behind the "Write Once Run Anywhere" pledge. Therefore Microsoft was in deep violation of its contract with Sun, which would force a schism in the Java community.
But I don't want to rehash all that, since this is about celebrating the fact that Microsoft has joined the OpenJDK project.
The $2 billion lawsuit by Sun represents the Old Microsoft. The Old Microsoft embraced and extended and extinguished all kinds of technologies. The New Microsoft is no longer a threat to the Internet. The New Microsoft is working with building the Internet as an open playing field, rather than seeking to dominate and control the Internet.
For example, I'm using Microsoft Visual Studio Code to write this blog post. A Node.js application (AkashaCMS) is used to format the Markdown files for this whole website. That is a cluster of open source projects which Microsoft either owns or makes big contributions to. Visual Studio Code is an open source programmers editor implemented using Electron (Google's Chromium engine running with Node.js) and Node.js code. Node.js is itself a project to which Microsoft contributes a lot of effort.
Just that set of technologies - Electron - Chromium - Node.js - is a multi-way collaboration between many companies and individuals, Microsoft included. Further, Microsoft is contributing lots of work to lots and lots of open source projects.
What is the OpenJDK project?
Before we get to Microsoft, let's talk a little about the OpenJDK.
For many years Java was seen as a proprietary thing, despite the fact that you could download the source code. The license prohibited actually building a Java implementation using that source code. Since the software industry was moving strongly in the Open Source direction having Sun's Java implementation available only under a non-open-source license was a problem.
I think it was Java ONE 2006 that Sun Microsystems announced the launch of the OpenJDK project. At that time I had just finished a project to make Java SE builds available to Linux distributions under a lenient license (The Distro License for Java or DLJ), and we hoped to entice Linux distros to use that license. Within minutes of announcing the DLJ, Sun's top management then announced that we would release an open source implementation of Java.
That led us to create the OpenJDK project. The OpenJDK is a completely open source set of source code that can be used to create a Java implementation. It is the source code that Oracle uses to build the commercial Java product. (Oracle bought out Sun Microsystems after Jonathan Schwartz ran the company into the ground)
We have to be careful with the phrasing. Any Java implementation is more than just compiling the OpenJDK source code. To be a Java implementation, the compiled binary must pass the conformance tests, and the team producing that binary must sign an agreement with Oracle to use the Java trademarks.
Microsoft's announcement regarding the OpenJDK project
Bruno Borges, Microsoft's Product Manager for Java, sent an email to the OpenJDK discuss mailing list saying that:
In the past week Microsoft formally signed the Oracle Contributor Agreement, in which Oracle Inc. promptly acknowledged and welcomed us to the project. On behalf of the Microsoft Java Engineering Team, I’d like to say that we are thrilled to officially join the OpenJDK project and be ready to work with you.
I read that and my jaw dropped. The email went on to explain that Microsoft is using Java widely, and that developers can host Java applications on the Microsoft Azure platform. Therefore Microsoft is already doing a lot with Java, and it was way past time for Microsoft to start contributing to the open source project behind Java.
The team will initially be working on smaller bug fixes and backports so that we can learn how to be good citizens within OpenJDK.
Very good way to start. And the e-mail hits all the right points. Their engineers will be joining appropriate mailing lists, and begin participating in discussions. The team will seek to learn how the OpenJDK community works, and be a participating player among many.