he Apache Software Foundation’s proposal of an open source version of Java 2 Standard Edition (J2SE) has the “Father of Java” James Gosling puzzled. “It’s often difficult to get a good picture from the open source community of what they actually object to in what we’re doing,” said the fellow and Chief Technology Officer of Sun’s Developer Products group, who created the Java language, in an interview with DevX. “In what way could we be more open?
“Since day zero, 10 years ago, all of our sources have been open and available,” he explained, adding that Sun has worked to establish a governance model (the Java Community Process or JCP), which is “very similar to how many projects in open source work.”
The Apache proposal, called Project Harmony, got officially underway May 6, when Geir Magnusson, an Apache project chair, posted an overview of Harmony’s need, objectives, and key participants to an “incubator” mailing list for Apache members. In it, Magnusson writes, “there is a clear need for an open-source version of J2SE runtime platform and there are many ongoing efforts to produce solutions (Kaffe, Classpath, etc.) [and] provide alternative approaches to execution of Java bytecode (GCJ and IKVM), but barriers exist which prevent these efforts from reaching a greater potential.”
The “clear need” that Magnusson cites is anything but clear to Gosling, who says Sun has received a negative response from the enterprise development community regarding the idea of open-source Java. “We’ve got several thousand man-years of engineering in [Java], and we hear very strongly that if this thing turned into an open source project?where just any old person could check in stuff?they’d all freak. They’d all go screaming into the hills.”
Testing Is Hard. Not Testing Is Harder
Project Harmony would be available under the Apache License v2 rather than one of Sun’s licenses, but Gosling doesn’t buy into the theory that Harmony’s need lies in alternate licensing, opening up what can be done with applications and code. He said, “For most users, we’re actually pretty close to the Apache license. You can do an awful lot of stuff with our system before you run into license restrictions.”
While he characterized the Sun licenses as “pretty liberal” Gosling conceded that the compatibility testing requirement in Sun’s license is “where [it] gets sticky.” Sun’s J2SE licensee partners are required to satisfy all the tests in the Java technology Compatibility Kit (JCK) before they can release their implementations. This, he says, has proved a daunting requirement for many. “One of the things that has come out over and over again as an issue is that testing is hard. Our test suites have literally hundreds of thousands of test programs in them. It’s not like there’s one file you run through your compiler.”
Although testing may make adherence to Sun licenses difficult, thanks to the current licensing morass, using open source is no walk in the park either. Gosling said, “In the open source community, if you actually care about being legally clean, it’s a nightmare. Most people don’t actually read the licenses. Every day or two there’s something about someone getting hammered for GPL violations, and most of the people who are doing it don’t even know it.”
For Sun, the stakes are too high to be loose with licensing, according to Gosling. The JCP employs the JSPA (Java Standards Participation Agreement) as a means of verifying that contributed ideas and concepts are “legally clean.” Said Gosling, “We don’t want something to get accepted as a standard and then afterwards [have a third party say] the standard that is now deployed all over the place is actually covered under my patent and you owe me a lot of money. And that happens in other standards venues all the time.
“We get hammered by some folks because we’re not willing to be as cavalier as they would like us to be. But on the other hand, the majority of customers who really matter to us actually care very deeply about the fact that we are excruciatingly careful,” he added.
NetBeans and the Java Tools Market
An open source project that Sun fully backs is NetBeans, the Java development framework. NetBeans has just released its 4.1 IDE, which features full support for J2EE 1.4 with tight integration with Sun’s Java System Application Server 8.1 and soon-to-be-available plug-ins for the JBoss, IBM WebSphere, and BEA WebLogic app servers, as well as out-of-the-box Web services and mobile application development support. NetBeans, along with the IBM-backed, open-source Eclipse framework, represent the majority of the Java IDE market today.
Gosling sees the IDE as a gateway to Java specification functionality. He explained that the tool makes J2EE development easier and more approachable than trying to work with the raw API directly. “A lot of the detail in J2EE is about these very gnarly, large-scale problems, and most people are actually doing things that are much simpler. So J2EE sort of forces you to pay attention to things that may not be actually rising in your particular case,” he said.
He added, “4.1 has been about making it so that you can build all of the different kinds of J2EE components, deploy them, and test them really easily.”
The large gains in market share for Eclipse and NetBeans prove that developers find these gateways useful, but how does their open source status impact the commercial Java tools market? Dan Roberts, Group Manager for Developer Tools Marketing at Sun, believes they likely mean the end for one type of commercial Java IDE. “There’s a consolidation in the IDE space, and [as for] core edit/compile/debug IDEs, you’re probably not going to be charging a whole lot for those going forward,” he predicted.
“The major vendors have kind of said tools and development environments tend to be loss leaders for the rest of their platforms,” he added. “That’s made it very difficult for individual companies whose businesses are built on tools to survive.”
Roberts does see plenty of opportunity for tools vendors who can focus their products on solving specific problems within the ecosystems that surround NetBeans and Eclipse, however. “There’s such a myriad of technologies that developers might be interested in using that if you can provide something in front of what the larger vendors are doing, you always have that opportunity to monetize a piece of the ecosystem.”
Java Turns Ten
With this month marking the tenth anniversary of Java’s official launch, the conversation inevitably turned to reflection on the language Gosling created. Gosling’s standard quip to the question of which aspect of Java’s success he is most proud of is “getting bankers to use garbage collection,” but he has a hard time choosing only one. He takes pride in the fact that Java has worked well enough for many developers to simply take it for granted at this point. He twice cited the example of developers who build Java apps on Mac OS X and then deploy them on Windows without even testing, because they just assume it will work.
“So much of the stuff that people thought was really outstanding about Java 10 years ago has now become so accepted that people don’t even think about it anymore,” said Gosling.
But doesn’t a language that’s taken for granted risk losing its vitality and being overtaken by the next great language? “If there isn’t a next great language, it says something really tragic about the evolution of computing technology and human civilization,” Gosling said.
Does he see any on the horizon that might fit the bill? “I guess I haven’t seen any out there yet that get me all excited,” he said. “The world is filled with low-performance scripting languages, which I have a hard time getting excited about.”
Gosling acknowledged that a number of programmers have built “interesting” languages on top of the JVM, but he finds the actual ASCII syntax of the Java language “relatively boring.” It’s the JVM specification itself that excites Gosling these days. “For me, that’s the thing that makes just about every magical property happen.”