Java and Tiger Woods
For years I have wished that Sun would make Java truly Open Source. Two days ago, Sun's executives publicly committed to make it happen. Now I have to figure out why I don't care.
Actually, I do care. In fact, I'm angry. Java had so much potential, and most of its opportunities are lost. Java today is like what Tiger Woods would have been if his Dad had made him live at home until he was forty.
At the age of 3, Tiger Woods played nine holes of golf and shot a 48. His father saw the potential and dedicated himself to helping his son become all that he could be. In the early years, this meant strict control. Later, the father's primary role was to simply never be obstacle in his son's path.
Am I being outrageous by comparing Java to Tiger Woods? Sure. Everybody knows that parents who want their kids to realize their full potential need to let them go. But Java is not a child; it's an intellectual property asset. Like I said, I'm angry -- don't expect me to be entirely rational about this. :-)
But even if my illustration is absurd, I want to finish it: Earl Woods (who sadly lost his battle with cancer just a few weeks ago) will primarily be remembered as the man who allowed his son to reach his full potential and become the best golfer in the world. In contrast, Sun will primarily be remembered as the company who created Java and then impeded its success by retaining strict control over it.
So on Tuesday Jonathan Schwartz and Rich Green promised that sometime soon, their 40-year old daughter Java will be allowed to quit her job in the family business and begin a pro golfing career. Frankly, it's a little late for that.
Please don't put labels on me. I'm not an open source zealot. I'm not a .NET zealot. I'm not a Java zealot. I'm just angry. I don't understand why Sun couldn't make this decision seven years ago when it might have made a difference.
Is it really too late? Perhaps not, but the remarks by Schwartz and Green this week indicate that these guys still don't really "get it". They showed up at JavaOne to announce their intentions, but they had no details of how it's going to happen. Why not? Reading between the lines, their attitude suggests that the reason they don't have a plan yet is that they are still trying to figure out how they can make Java Open Source while continuing to remain in complete control over it. Yeah -- good luck with that.
If Java is going to realize at least some of its potential, Sun will need to get really serious about letting Java go. That means facing what appear to be their two primary fears:
- If we make Java truly Open Source, will it benefit Sun as a company?
- If we make Java truly Open Source, won't that encourage people to fork?
Seven years ago, the answers were:
- Yes. It will benefit Sun, but not directly. Releasing Java as Open Source will change the industry. Finding ways to profit from that change is a separate step that Sun needs to figure out. If you do it right, then dozens of vendors will have a common foundation upon which they can unify against Microsoft. Sun can be one of the leaders, along with companies like IBM, Motorola, and Apple.
- Probably not. People don't fork projects when the primary maintainer is doing a good job.
Today, the answers are completely different:
- No. It won't benefit Sun. You already screwed it up so badly that it no longer matters what you do. Your company is just waiting to die, and unlike the situation with Earl Woods, most people will be struggling to find anything nice to say at its funeral.
- Definitely. If you Open Source Java on a Monday, a community fork will be the most active project on SourceForge by the end of the week. Dozens or hundreds of people will be granted commit access. None of them will be Sun employees.
Oh, wait -- that's the anger talking. :-) Let me try again:
- Maybe. This isn't the high-percentage play that it would have been seven years ago, but there is still a chance that you can catalyze some major change. If that happens, and if you swallow your pride, you can probably find a way to be a leader.
- Probably, but maybe not. The way to prevent a fork is to take away the motivation to fork. If you show the Open Source community that you "get it", you will have countless allies and fans in your community instead of countless developers trying to repress all memory of you as they fix your bugs.
I confess that I gave up on Java years ago. I'm a C# developer now, but I don't get religious about platforms. If it's not too late, I would still love to see Java realize its incredible potential.
If that's going to happen, I see only one possibility: Crazy as it may sound, Sun needs to stop thinking of itself as Java's owner and start thinking of itself as Java's proud parent. Sun, your child was born to change the world, and the only thing preventing that from happening is you.