've been trying to come up with any reason to criticize the participants in last Friday's big news that made uncommon bedfellows out of archrivals Microsoft and Sun Microsystems. But I haven't really come up with anything that sticks. Sun made a deal that's good for Sun. Microsoft made a deal that's good for Microsoft. And together they have the ingredients to make a very sturdy detour around IBM's aspirations for an open source version of Java. If indeed a detour is what Sun would prefer.
"We were as surprised as everyone else was," said IBM's Rod Smith, Vice President of Internet Emerging Technologies, in an interview with DevX Wednesday. "I'm waiting for Sun to give us some indication [of how this helps the community]. I'm waiting on the sidelines for some more information to come out."
The pact between Sun and Microsoft, announced last Friday, has everyone guessing just what it all means for the future of Java. The timing is particularly astute in light of IBM's recent proposal to Sun to cooperate in developing an open source version of Sun's proprietary language.
IBM, which has invested an enormous sum developing Linux as a viable challenge to Unix and Windows, also bet on Java as its enterprise-level programming language. Unlike Linux, though, Java isn't open source; therefore, IBM doesn't have the level of influence over Java that it would like. However, if IBM could muscle Sun into open sourcing Java, IBM could force the mainstream language project into a more IBM-friendly mode. Were IBM to rally significant public support for open source Java, Sun would be in a very bad position, public relations-wise—even worse than the one it's in now. Looked at from that perspective, Sun may have just dodged a bullet. But that assumes that Sun's caginess has been a stalling tactic, and that it will ultimately choose not to consider the proposal. I have to believe that's the case.
IBM's Smith says he's not assuming anything. "I don't have any indication that there's been a change. I suspect they'll be rethinking some things, but so far no one's told me otherwise so I'm going to stay optimistic."
Facing Hobson's Choice
I've been suspicious of IBM's motivations, mostly because an open source version of Java does not have Sun's best interests at heart. An open source version of Java benefits just about every vendor of Java technologies except Sun. Among these, IBM is foremost, with its backing of the Eclipse project over Sun's NetBeans and an increasing business focus on growing the installed base of WebSphere and other Java-centric products. Even vendors who, like IBM, have plenty to gain from open Java, didn't immediately jump on the Java-napping bandwagon.
As Cornelius Willis, BEA's Vice President of Developer Marketing told DevX in a interview a few weeks ago (long before the Microsoft news), "you've got the world's largest vendor of proprietary software talking to the second largest vendor of proprietary hardware and asking them to release control of their primary IP asset," said Willis. "That doesn't help anybody at all." "It's not clear what IBM is proposing," said Willis. "We'd just like to see the [JCP] process improved."
Smith acknowledges that IBM has much to gain, but argues that all the vendors, Sun included, gain an advantage in costs savings in the administration of Java. "If we agree to one source code tree, with consolidated bug fixes, it reduces Sun's costs quite a bit," he said. "It also reduces our costs."
"Part of my note is vague for a reason," Smith says of the open letter he sent to Sun's Rob Gringell to broach the subject of open source Java. "I didn't want to say what's good for us and what's lousy for Sun, or the other way around. ... I purposely didn't want to preordain something here, like, 'let's start with this.' I didn't want to make it out like IBM had thought this through or had a playbook all laid out and ready to go. It was 'I'm open. Where's a good starting point that will help the community?' And I'm ready to start wherever Sun wants to start with this."
But Smith did reveal one possibility, which may be to focus on the J2SE, rather than the entire reference implementation. Though he mentioned the J2SE in the context of an "example" of where the negotiations might lead, he said the maturity of the J2SE standard makes it a good candidate. It "might be a good starting point," he said.
It might, particularly if Sun decides that a compromise is better than disenchanting the open source community even further, but I suspect this isn't the way things will go. Sun will do its best to extricate itself gracefully and focus on Java interoperability projects—with Microsoft—that expand Java's reach and its performance on the desktop without handing a competitive victory to IBM.
Good Timing or Convenient Timing?
Smith says the time is right for open source Java because the community is sufficiently mature, and he complimented Sun for "getting Java put on the right track, getting the community to recognize the value in the write-once, run-anywhere proposition."
Somewhat ironically, one of the reasons that Jonathan Schwartz, the newly appointed President and COO of Sun, initially gave for Sun's lack of eagerness in the open source Java proposal was that it would be like a throwback to the early 90s, when Microsoft licensed Java and modified it, effectively splintering the language. Sun prevailed in shutting down Microsoft's attempts to appropriate Java and in doing so killed Microsoft's Visual J++ product. Schwartz's point is valid: To open source Java now negates all the cost and effort of that victory. If an open source version of Java is the right thing to do, it seems highly suspect that IBM's perception of the maturity of the community to undertake it coincides so nicely with its own ability to take full advantage.
It's true that Sun has done far more than flirt with open source. But everything it has done, it has done seemingly in the hopes of harming Microsoft while simultaneously ignoring its own vulnerability vis-à-vis Linux. By partnering with Microsoft now, at least Sun gains compensation for sharing its valuable assets—and not bad compensation at that. Sun gets to bury the hatchet with Microsoft, gains an ally in preventing further weakening of its product portfolio at the hands of Linux, and gets an uncommonly fat and much needed paycheck. The first item may not turn out to be good for Sun—only time will tell—but the latter two indisputably are.
Sun should be embarrassed that it never managed to do what IBM and others did: find a way to make money off of Java. But the fact that it didn't doesn't mean it must now forfeit its right to Java or the modest revenue that it earns from licensing the reference implementation. I would prefer to see a proposal that actively considers the tradeoffs for Sun; until then, I'll continue to believe that IBM's community-mindedness is rather too convenient.