Sunday, February 11, 2007

Java 2007: The year in preview

Open source Java programming means developers are driving -- but where to?
06 Feb 2007
2007 will go down in history as the year Sun Microsystems gave up the reins of the Java™ platform, releasing it under an open source license to the Java developer community. In this article, Java developer Elliotte Rusty Harold predicts new directions for the Java platform, in everything from scripting to bug fixing to new syntax.
");
}
}
}
//-->
2006 was another boom year for the Java platform. The Java language retained its title as the world's most used programming language, despite an onslaught of competition from both Microsoft (C#) and the scripting community (Ruby). And, while the release of Java 6 would have been cause enough for celebration, that paled in comparison to the announcement that Java was going to go fully open source under the GNU General Public License. Can the momentum continue in 2007? Let's consider the odds.
The Java platform goes open source
Before 2007 is half up, Sun will release the Java Development Kit (JDK) under an open source license. Freeing the JDK is a huge step for the Java developer community, and it will drive the evolution of the Java platform for the next decade.
Expect the quality of the JDK to improve dramatically as programmers stop merely reporting bugs and start fixing them. Bug reports at the Java Developer Connection will include detailed analysis of what's broken in the JDK and provide patches for fixing it. As Linus's Law states, "Given enough eyeballs, all bugs are shallow." That is, debugging is parallelizable. The same is true of optimization. Open source makes both massively parallelizable.
Forks in the road
Unfortunately, design is not as parallelizable as debugging and optimization. A clean API occasionally requires a dictatorial hand. The downside of dictators, however, is that sometimes they know what they're doing and sometimes they don't. Competition among would-be dictators is often the only way to discover the best solution to a problem.
Few companies can afford to develop multiple independent implementations of a product with the goal of throwing all but one away, but the open source community thrives on that sort of thing. So look for forks at all levels of the Java platform: language, virtual machine, and libraries. Most of these will fail, but that's okay. The good ideas will rise to the top. Some will take on a life of their own, and some will be merged back into the standard JDK. It probably won't be obvious by this time next year which are which, but the process should be well underway.
Sun will get the ball rolling in a few months by releasing an early beta of Java 7, Dolphin. The company can't release earlier versions of the JDK because of build problems and license encumbrances that are only cured in Dolphin. However, look for third parties to start chopping pieces out of the Sun release to produce passable, open source implementations of Java 6, Java 5, Java 1.4, and maybe even earlier versions.
Some of these early forkers will probably run afoul of Sun's trademarks and get nasty letters from the company's lawyers. We'll need a generic, untrademarked name for the language that everyone can use. I propose "J" -- hopefully no one can trademark a single letter.
Open source projects never die, they just fade away. Like the Blackdown Project before them, GNU Classpath, Kaffe, and other open source JDK projects are going to see their developers move on to other things. If a project hasn't reached 1.0 yet, it is unlikely to do so in the future.

No comments: