The case for open source Java
If you look at the progress of open source products you can gradually see a complete software stack coming in to place. However, a quick analysis will reveal that there are currently many gaps in the stack (as there are in every software stack) - most of them are happily filled with good proprietary products. The pressure that open source is putting on the market is gradually becoming clear. Open source products can and do establish themselves in areas where products have tended to become commoditised and not much further innovation can be expected. This is where open source eventually wins hands down. Open source can establish itself in other areas, if it gets solid backing from a major vendor - but the vendor has to find a viable revenue stream as IBM has with Apache and Linux and CA is attempting to do with Ingres.
Enterprise computing is now getting partial to open source for obvious reasons (its has very low TCO) but I am also beginning to hear the argument that open source helps to keep the commercial software vendors from overcharging. This is fine as far as it goes. A good candidate for open source and something that is often viewed as a commodity is Java.
As was widely reported, IBM, or to be more accurate, Rod Smith IBM’s VP for emerging technology, wrote an open letter to Sun, suggesting that Sun "open source" Java. IBM, he said, would back the initiative with technical resources and code. IBM was, to quote Smith, "firmly convinced the open source community would rally around the effort and make substantial contributions as well." We expect that they would and they would almost certainly help Java to evolve.
Sun seems to be schizophrenic about the idea, and no wonder really. Like a virgin on the verge, it would like to, but it is not sure that it will. There are issues to resolve. Java is intended to be a standard with the promise of "write once run everywhere" (which is actually and undelivered promise but a laudable goal.
The problem with programming languages is that they evolve. They don’t get to be commodities. They evolve because they need to evolve. However there needs to be control in this, because it would do no-one any good for Java to turn into a "thousand-headed hydra" - it could turn into "write anyhow run nowhere else". Actually Java has several different versions already anyway, due to the need to fit into small footprints.
The open source community has managed to exert laudable (although not perfect) control over Linux, so it could rise to the responsibility. But the evolution of Java is already guided by a community (see www.jcp.org) so Sun is stuck with deciding whether to risk it as open source and get a much more active community in return or stick with the status quo. Despite some criticisms, Sun does not appear to be anti-open source and in the area of Java it has already contributed some Java components to the open source community. (It gave Project Looking Glass, the 3D desktop environment, to open source at JavaOne).
But there is another issue. Java is not just a programming language but a Sun brand, which is used to name a host of Sun products. There is thus the possibility of brand damage if Java became open source and it went badly wrong.
Currently Sun’s line is that an open source version of Java "will happen", but no date has yet been set. My own view is that Sun needs make a decision in favour, announce a date and stick with it - and in the mean time work out how to pass control in a safe manner. There are now about 1 million open source developers out there. (Yes, that’s right - 1 million) and a group of them will surely develop a Java killer if Sun doesn’t eventually yield.