I just saw the live webcast for JavaOne’s General Session on the future of Java, and I must say I’m a little saddened by it. I never thought I’d ever hear the words "Visual Basic for Java" mentioned anywhere, even less so in such an important event as it is JavaOne. In my very personal opinion, the fact that Sun is even considering letting VB programmers come near a java-based application means that Sun feels it’s losing the battle against Microsoft, which I don’t think is the case. I’m still in shock over the news.
Another part of the Session talked about how Sun is planing to ‘Open Source’ Java. They mention (of course) that most of Java is Open Source already, with big projects like Glassfish (Sun’s new version of the JEE Application Server that previously was closed source) and even the next version of the jvm code (which is available through a Java Research License which, although not exactly OSS, at least it lets people contribute back to the development of Java). In fact, I would say that right now there’s hardly a Java-related product from Sun that you can’t find the source code under one of Sun’s licenses.
So, what does the community really want when they cry ‘Open Source Java’? This is a difficult question (even for Sun, it’s my guess), since Java really applies to several things. We really have to divide the Java universe in its different components:
- Java The Language Specification
- Java the Virtual Machine Specification
- Java the Standards (in all its incarnations, J2ME, JSE and JEE, and all the related libraries)
- Java the Products (the actual JDK/JRE applications, the Application Servers, etc)
- Java The Trademarks
From this list, we can see Sun has already opened the decision-making process on several of its components, like the Standards and the VM specs (through the new Mustang research license) and it is also distributing most of their major applications as Open Source (or at least something as really close to open source as it can be for Sun). But also from this list we can see that Sun is really keeping close tabs on very important parts of Java, which are the Language Specification (they are the only ones who decide what new language features are going to be implemented) and the trademark (no one can say something is Java or Java-compatible without Sun’s permission).
So, what does "open source Java" really means to me? Well, it’s really simple, although unlikely to happen anytime soon. Open Source Java would mean opening up the Language specification improvement/maintenance process, and allowing a separate body decide where a Java trademark can be applied. Basically, establish a separate organization (let’s call it "The Java Foundation") that takes control over anything Java related, and establishes a Member Board of Directors composed of the different leaders in the Java industry, not just Sun. In short, something very similar to what IBM did with Eclipse, or what AOL did with Mozilla (both very successful community projects, I might add).
Establishing a non-profit corporation that takes the ownership role of Java, ensuring that everything moves forward and that any trademark is properly licensed is, in my opinion, the best long-term solution for Java as a whole, even if it wouldn’t mean anything good for Sun. As a separate entity from Sun, Java would be even more successful, since it could really focus on the community as a whole, instead of only focusing in Sun’s (and Sun’s shareholders) interests.
Do I see The Java Foundation created anytime soon? Not likely. Sun is still too embeded with Java to make it happen. I’m afraid that "VB for Java" isn’t the last flop we’ll have to endure for our beloved Java.