‘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.
From Java to .NET and Back
Assuming that Sun will shelve open source Java, what are we left with? For corporate developers and ISVs, cooperation between Sun and Microsoft—and interoperability between their products—could mean more business, more efficiency, and the freedom to build the right solutions for the right situations. But these interoperability promises are currently vague. Certainly, there will be increased cooperation between Solaris and other Sun servers and Microsoft Windows. Some have surmised that the companies will work on a single sign-on solution and compatibility between their two network identity solutions. And it’s obvious that they will work out their differences concerning the distribution of the Java Runtime on Windows machines.
But $2 billion is a lot of money. It’s enough to be downright suspicious. Certainly, for Microsoft, it’s worth a princely sum to quiet one of its peskiest litigators and to neutralize Sun’s influence in other, independent antitrust prosecutions such as the one with the European Union. But it’s still not a big enough pest to justify a $2 billion payoff (or, technically, $1.6 billion—the amount of the payment of supposedly exchanged in settlement over patent issues). I accuse Microsoft of padding the bill; I suspect what it gets in exchange for that padding will be renewed hooks into Java.
The door might now be open for Microsoft to once again support Java in Visual Studio. In one way of thinking this comes too late: Microsoft, forced out of the Java development space by Sun years ago, invested in the Java workaround language, C#—and is having great success with it. But Java is not a C# killer, and Microsoft knows that it needn’t fear supporting both. Adding Java to the languages compiled by .NET will just add that many more developers to the potential audience for VS.NET.
And it solves a key Java weakness. Recall that before the Sun-Microsoft Java lawsuit killed it, J++ was the most popular Java development environment because it made Windows desktop applications built with Java viable. Later, IBM, via SWT, devised a way to do the same in Eclipse. Just like J++, SWT gives Java developers a way to avoid the aging and never-popular Swing technology and write fast, native GUIs. But Eclipse and SWT, despite IBM’s repeated urgings and their growing popularity, are not part of Java. It appears that Sun now has a choice: Work with Microsoft to create a Sun-supported way for Java developers to once again target the Windows desktop or open source Java and let SWT integration become the dominant method. For reasons previously stated, I think the former is more likely. Either way it seems Sun will finally get the monkey of Java-on-the-desktop off its back.
It needn’t work in only one direction. As Mainsoft has shown (see Write on C# and Run on J2EE? Believe It with Visual MainWin and Free Your C# Apps from .NET Platforms), it’s quite possible to compile .NET code to Java bytecode as well, giving Microsoft .NET programmers near-instant cross-platform capability.
And that’s where $2 billion starts to make sense. Java interoperability could be just the preemptive strike that Microsoft needs to extend its reach to Linux and other devices without the requirement of installing a .NET runtime. Microsoft may be imagining 10 million + Microsoft developers, writing one application and compiling it to run on virtually any system in the world. I think that might be worth $2 billion to Microsoft. While this is merely speculation today, the promised architectural changes coming in Longhorn, specifically when XAML will be used to loosen the binding between the presentation layer and the program layer, means actually doing that kind of programming won’t be out of the question for the average developer in the future.
I’m not unsympathetic to the fact that an open source version of Java opens up huge opportunities for developers who aren’t aligned (and don’t want to be) with either the Microsoft or IBM camps. But as the corporate inventor of Java, this is Sun’s call to make. Vulnerable and out of options, its investment rating reduced to junk status, Sun had to capitulate somewhere—and Microsoft has the most to offer, both in terms of cash and in protection from the encroachment of Linux, and there’s still upside for developers overall. Getting $2 billion from Microsoft in return for cooperation on Java is a better business proposition than having Java yanked from its hands for nothing.