What it means to be “Open”
I don’t really like soap operas on telly. Having grown up where everyone else seems to be hooked up on one asian soap opera series or another, you tend to quickly notice repeating patterns in the story lines. If you watch closely enough, the very first episode will tell you who the bad guy is, who the long suffering good guy is, who the couple who starts out hating each others guts but ends up together are and that poor bastard who’s going to get amnesia. Apparently soap operas on the western side of the globe has a lot more sleeping around with the same people also.
There is a soap opera being played out in the Valley at the moment tho (there isn’t as much sleeping around in this one…at least I sincerely hope not considering the actors involved). It started when Steve Jobs ranted this, then the second episode saw Andy Rubin do this, and then everyone decided to let loose. Amidst the artilleries that have been firing back and forth, what really struck me most about the entire saga is the many misconceptions that’s been floated in reference to what open source constitutes.
Now there are a few things I want to make clear:
a. I’m not entrenched in either camp so don’t judge me in reference to ownership of new toys
b. I’m not going to talk about the merits or shortcomings of open source. There has been enough successes and failures over the years for you to be making your own mind up about that.
c. I’m not going to debate who’s right and who’s wrong. Again the Apple and Google stands are very clear and if you’re reasonably well informed, you can again make up your own darn mind.
d. I’m not going to argue over who makes better technology. They both do some pretty cool stuff so that’s really beside the point.
e. I’m not going to miss the idiots on the road in this part of the world (altho I have to say that the valley with have one additional idiot on the road when I fly back next week)
What I *do* want to talk about is what open source is, and more importantly what it’s not.
In approaching this subject, there are 2 things we need to keep in mind. Much like the law, there is the letter of Open Source (i.e. what you must absolutely do in order to be validly open source) and the spirit of Open Source (i.e. the fundamental ideas behind the entire movement). The letter of Open Source has 2 basic requirements that you must fulfill to be an open source product. (BTW I’m calling it open source product but it could be an open source project/product/module/library/[fill in your blanks here]. Its just that the latter is a lot harder to type):
1. There must be source code availability. To the non geeks, source codes are the stuff your software engineers write to create software. In most commercial software (i.e. not open source), the source codes are religiously guarded (akin to the 11 secret herbs and spices that the Colonel Sanders uses in his chicken project). In the open source model however, the source codes that make your product must be made readily available to anyone who wants it.
2. There must be source code distributability. Now not only do you need to make your sources available; anyone should be able to take your sources, modify it as they see fit and redistribute it under a different branding.
There are a myriad of different open source licensing models (GPL, LGPL, Apache, Berkeley, etc etc) that tells you exactly what you need to comply with and there are certainly a great deal of variances with those (and I’m too lazy to write about that now) but in essence, those 2 precepts above are always upheld.
Now as far as the spirit of open source goes, the entire movement started behind the idea that the a community of developers should make a difference in the development of a product. The essence behind the thought is that communal contribution and engineering will help spur improvement far more rapidly, and that the evolution of the product will be determined and shaped by such a community.
If we understand those simple lines, lets apply those to what Android is doing. Again, I’m not partisan – and if I were I certainly won’t be championing Apple’s story. Its just that Apple has never been perceived as open anyway so the argument is moot in their context. So, as far as Android is concerned:
Letter of Open Source: Do I have access to source ? Yes. Do I have the rights to rip it apart and add new stuff as I see fit ? Affirmative. Do I have a right to redistribute, call it Diordna without paying Google anything ? Correctomundo (for some very strange reason that’s the third option for “Yes” that my thesaurus gave me).
Spirit of Open Source: Will I be able to check out the latest copy of the source (that is not a revision where someone somewhere decided should be a bloody release) whenever I want ? Nope. Is there a commit model in place so I can contribute my work to any/all portion of the project ? Not really. Is there any way I can eventually earn check in rights so I can contribute my work to any/all portion of the project ? Not to my knowledge.
So there you have it. Now go make up your own mind.