This post originated from an RSS feed registered with Java Buzz
by Michael Cote.
Original Post: PeopleOverProcess.com: More on Open Sourcing Java
Feed Title: Cote's Weblog: Coding, Austin, etc.
Feed URL: https://cote.io/feed/
Feed Description: Using Java to get to the ideal state.
I talked with Sun recently about the status of open sourcing Java. Overall, I felt positive about their efforts, esp. since their general direction is to be more and more transparent as time goes on. In this whole process, being transparent is key, and I'm hoping Sun has gotten to the point where most everything can be in the open, esp. with the new portal on the topic (see below).
The conversation was more to get a general feel for how things are going and didn't have any extremely earth shattering. There were however some "hard" bits to chew on:
The bulk of the code will be released in 2007. This is the first actual numeric date I've heard from Sun. By "the bulk" they mean that there'll still be some code left to open source, which leads to...
The IT encumbrance is part of what's holding back rapider open sourcing. The problem here, as we discussed in a recent RedMonk Radio Podcast, is that there Sun doesn't own all of the IP in the Java source code. They may have licensed it from other people, but they don't fully control the IP so they can't just decide to open source it. Mark Reinhold gave one example: there are 3 font rasterizers in Java that are not wholly IP-owned by Sun. So, they have to figure out how to either re-negotiate the licensing deals to keep using that code, re-write it themselves, or do something else.
While Sun hasn't chosen a license, they've narrowed down to choosing an OSI-approved license. As far as which one they'd choose, they said "everything is still on the table."
There's a new community site centered around, as the site is called, "Open Sourcing the JDK." The portal-ish site aggregates related posts on the web, links to resources on the topic, and otherwise is intended to help you help Java open up. There's even an RSS feed tracking relevant info, which is great for the likes of me ;) As I suggested to on the phone, it'd be great to do some tag gardening and establish a tag: perhaps "opensourcingjava"?
Below is some thinking on the above and other topics.
Licensing
By saying "everything is still on the table" the signal is that super-permissive licenses like BSD and super-restrictive (from a commercial-vantage point) ones like the GPL are under consideration.
BSD
While I like the BSD license, even public domain for my own code and utopian open source thinking, it certainly wouldn't be a good choice for the marketing goals that I think Sun has with Java, open source or not. Managing the Java brand has been a major part of Sun's parentage of Java over the years.
We spent some time talking about figuring out what brand management means in an open source Java world, and it is a good question. Indeed, it made me realize IBM is a good historic source for that line of thinking, "Love, Peace, and Linux" aside (though, here I am talking about that years later, really, so it worked).
Point being: the BSD license would limit the ways in which the Sun and upcoming JDK community could control/direct the brand. That could be a positive or negative thing depending on what those groups goals are.
GPL
In my experience, the GPL seems like an even worse choice. Having worked in enterprise Java software, nothing says "box office poison" to me more than those three letters. For example, at one of my past jobs I stupidly used a GPL library for parsing MIBs and ended up having to rip it out and re-write that part once the legal department got wind of GPL.
Many other legal departments have banned the use of GPL libraries, and releasing future versions of Java under that license would cause many of them to have to revisit their position on the use of Java.
Now, understand that I'm not saying that revisiting is rational or "needed," nor that I'm a lawyer and thus blessed to even think about such topics. On the technological front, we can be arm-chair lawyers and muse 'till the cows come home about what "linking" means in the context of an interpreted runtime like a VM, or, even better as Steve point out to me, point to the wide-spread use of Linux in the commercial world. But we're talking about The Law here. The fact is that "GPL" freaks out lawyers in the software world, whether that freaking out is enlightened or not, is a problem.
On the other hand, if that hurdle can be jumped, as Steve and I talked about, GPL'ing Java certainly would give Sun a huge chip in the "we're open source" discussion they find themselves in (and I would say distracted by) all too often.
Compatibility
On a minor point, on the topic of compatibility, I asked the Sun folks what they thought of Apple's JDK distribution. I've always thought it was a bit weird, esp. since it's not in lock-step with the Sun's JDK releases. The way in which the JDK and the JRE are installed (the "layout" as it were) is different between Windows, OS X, and I assume Linux.
To me, part of compatibility is having the same directory structure and deployment, avoiding the "if/then/else" chains in all the .bat and .sh files that we see in Ant, maven, JBoss, Tomcat, and friends. Even in that state that JDK deployments are in, compared to other *nix-y programming worlds, Java has a very tightly organized layout, usually under one directory if you're lucky.
The concern as Mark Reinhold replied, is strictly with runtime compatibility; he mentioned that he didn't think there was anything weird about Apple's JDK. Which really, looking at it outside of my personal preferences, is spot-on. There are several JDKs and JREs running around and each has it's own "pre-runtime" eccentricies. While I think consolidating them all into the same structure would be helpful, there're bigger fish to fry.
We also talked about "enforcing" compatibility, and the answer so far was strongly encouraging any JDK forkers to use the TCKs and other compatibility test suites. What was of note here for me was that the talk was of encouraging people rather than forcing them. Of course that's what'd you'd expect on the happy path for all this, but it's good to hear "the right answer" ;>