I've had a lot to say about Sun open-sourcing Java, and I never managed to get it posted given the crash Codehaus had. I knew that Sun was going to announce something at JavaOne, but had no idea what it was. I had a lot of thoughts about it, and I'll be perfectly frank - I was wrong. I thought Sun was going to actually do something specific. I'm not dissatisfied - I think that the significance was that Jonathan Schwartz committed Sun to releasing Java SE under an Open Source license, and that was a big thing. So, now might be a good time to start musing about this...It Won't Happen At Once
Like Glassfish and OpenSolaris, Sun won't do it at once. Some Sun people think they can, but they can't. There has been 10 years of very fast, very competitive growth in that codebase, and I'm betting that Sun doesn't have a real clue what's in there. The code will have to be sorted through and examined. I know from my experience at both IBM and Intel in OSS code contributions, it's prudent to go over the code with a fine-toothed lawyer, even when the code was specifically written to be clean-room and clear of external IP issues. In this case, there's going to be lots of encumbrances, and I'm really hoping that those with the encumbering IP help out and make this easy for Sun. This is a big and important step for the entire Java ecosystem.License?
What license will Sun use? This has been and will be a source of rampant speculation. Sun needs to balance two things - dealing with their darkest fears around compatibility with the need for a licensing regime in which all players can innovate and control their own IP. Clearly the GPL won't do. While I am a big fan of the Apache License and the full freedom it offers, I can live with the CDDL and other soft-copyleft licenses. At least then, people could invest in innovation, and choose how they wished to license the IP for the things they created that were truly new.
I've suggested to anyone who listens that if Sun does have to do the GPL, they at least dual license under something free-as-in-freedom like the Apache License, with a non-free/non-open-source addendum that licenses the code under the Apache License if and only if any derivative work passes the TCK - IOW, is compatible Java. While we couldn't use that code at the ASF, as it's not open source, they would at least make it easy for people to do innovative things with Java (port to new platforms, better performance, embed in new applications...) and retain the freedom over their own code.
Maybe the best solution is the CDDL for core stuff, and BSD-like license for the not-critical-to-compatibility parts. Maybe do all the tools and plugins under BSD (so we can use them in Harmony), and the rest under CDDL? (Except for the bytecode verifier that we also need in Harmony...)Community?
The community that Sun creates around their open source implementation of Java will be the most important aspect - more important than the license. People tend to forget that 'open source' is really a combination of a license for code and a governance model for the community. Simply put, people want to participate on a level playing field where all activity is transparent, where everyone is a peer, and everyone shares in the same benefits of the collaboration. To that end I hope that Sun creates a community that allows anyone to be a committer after some amount of demonstrated competence, that the copyright model is symmetric (IOW, it's not like Glassfish where Sun's copyright contributions belong to Sun, and your copyright contribution belong to Sun...), and that the governance model is clearly defined, and open in it's execution.
Again, this project will only reap the collaborative benefits of open source if every possible participant - be it individual, academic or commercial - has the same chance to contribute and the same opportunity to benefit as every other participant.
This is the "Participation Age" after all, isn't it....
While it does seem like I'm shooting myself in the foot as I'm one of the founders of and a big proponent of Apache Harmony, I'm actually willing to help with this one. I just don't know who to ask....Maybe They Will Confuse Java with the Ecosystem
So here's where the crazy talk comes... I'll bet, and it's only based on sheer optimism and that things happen for good in the universe, that the people from Sun listening to Jonathan at JavaOne got it wrong, and aren't going to just open source Java SE, but rather open source the whole kit and kaboodle. Java EE is almost done with Glassfish, so it's only Java SE and Java ME, and the JCP.
Now, that's just crazy talk, of course. But Sun has done some odd things, and if you understand Sun's business model, it actually makes sense. "Lift heavy or go home" as a good friend used to tell me. (I work at home now...)
Were they to do that, I have some thoughts here too :
First, do it in steps. You didn't get Glassfish (Java EE) right, so I don't believe you'll get Java SE right either. But it will be better, and the learning you do in Java SE can be both plowed backwards into Glassfish as well as forward into Java ME.
Second, engage the community on what to do with the JCP. A lot of us (speaking as the Apache EC rep) have poured a lot of love and energy into the JCP, and given the promise that it will become a truly open and neutral ground for governing the ecosystem, I think you'll get a lot of positive engagement on how to make it better.
Finally, be careful with the name "Java". Don't abuse and dilute it by branding this new endeavour as "Java" or "Something Java". Just as we at Apache Harmony are "Apache Harmony, an implementation of Java SE", so should you be "Sun 'Jonathan', an implementation of Java SE".
You've done it in the past with "Java Enterprise System" and "Java Desktop System", and most recently with that awful idea, "Java DB". Yes, you own the trademark, but "Java" is bigger than a mere trademark now, and in a community sense, we each own a little piece of it. People are pouring in creativity and innovation, planning for the future on it, building their businesses, their educations. It's a part of their social fabric. It's a promise of things interconnecting, it's a way of thinking, of working, it's an important facet of our technologically-oriented lives. Let it continue to be the thing around which we all share, all collaborate. You've created a wonderful thing - let us all continue to build on it, rally around it and yes, as owners, help protect it.
Thanks for reading this far :)
Note : the above is my personal opinion, and doesn't reflect the view or policy of my current or past employers.