Open sourcing Java

There's been a lot of churn lately over open letters from IBM and others calling for Sun to open source Java. Rather than try to respond to everyone individually, I'll try to respond to a pile of questions here:
  • Some have asked why IBM is sending open letters, rather than talking to us directly: asking if this isn't rather kindergarten-ish. Well, yes: it does appear that way.
  • Some have asked what IBM would get if Java were open-sourced: doesn't IBM already have the source? Again yes, they do have the source. It's also true that anyone can get the source. The major restriction is that if folks want to redistrubute their changes, they have to pass the test suite. Which means that about the only thing that they could get from liberalization is to be able to skip testing.
  • Some of IBM's statements have essentially distilled down to "we'd love to help: open source java so that we can". This has led to questions about whether or not IBM has been able to help. The answer is that they have. They're one of the strongest participants in the Java Community Process. Their participation over the years has been substantial, and we're very thankful for it. For example, IBM was the major mover that led to the creation of the Swing API to replace the AWT api. They contributed many engineers to the Swing team. Viewing that time in hindsight, it is more than slightly ironic that these days they're endorsing SWT, which is essentially a clone of the AWT architecture, which they had strongly condemmed back when the decision to create Swing was being debated.
  • Some have asked when, given IBM's apparent zeal for open source, DB2 and WebSpere will be open sourced: ask them, not me - it does seem unlikely.
  • Most of the comments I've heard from folks about open sourciing Java have been negative. Hmmm... Not so much negative as concerned: Developers value Java's cross platform interoperability and reliability. They're afraid that if Java is open-sourced then someone will try to fragment the community by creating incompatible versions of Java and ignore the community process, just like Microsoft did. Microsoft did a lot of damage to the community and many developers strongly do not want that to happen again.

    This is a big issue for us. If we do something to make Java even more open-source than it is already, having safeguards to protect the developer community will be something we pay a lot of attention to. Carefully done, open-sourcing could actually promote interoperability by making it easier for disparate groups to align behind one code base.

April 30, 2004