He's arguing a point that nobody cares about. Even RMS is probably saying, "You're being a bit pedantic here about the definition, aren't you Joe?"
He's arguing a point that nobody cares about. Even RMS is probably saying, "You're being a bit pedantic here about the definition, aren't you Joe?"
Chrome was initially a completely fork of Webkit, but Google eventually chose to work with Apple and merge all of their changes to the Webkit trunk. This was only possible because Webkit, unlike Android, allows outsiders to commit.
The costs of maintaining a fork of a project as large as Webkit (or Android) are so huge, even Google didn't want to bear them for long. The benefits of the merge are huge for all users. Not only does Chrome continue to get Apple's changes downstream, like CSS transforms, but Safari gets Google's changes, like web sockets. In Android today, this sort of collaboration would be impossible.
Clearly Google doesn't think the benefits of public commits outweighs the costs, otherwise it would economically make sense. Additionally I suspect given the current state of mobile OS development vs browser development they probably realize that public contributions would be fewer and of less general utility than what we've seen with browsers.
I still think the fact that one can pick up Android, even if it is just 2.2 today, and build it, and port it to any device they want, and rip out any code they like, and add any code they like is a pretty reasonable definition of open -- at least given that openness is a gradient and not absolute term.
Just because most people don't care doesn't mean it's not important.
Why was it wrong -- so wrong that they were bullied into changing their process -- for Apple to behave this way, wrong enough to get so many people worked up, so many people to care, when Google engages in the same sort of "open license, closed project" behavior and get a pass?
and what subset care about:
the definition of open: "mkdir android ; cd android ; repo init -u git://android.git.kernel.org/platform/manifest.git ; repo sync ; make"
?
Probably the most useful part of the Android story is side-loading. After that the ability to host Android on any device I like. After that the ability to add or remove any part of Android I like. At somet point we eventually get down to something like public commits, but that's far below things like ability to audit and escrow code.
Again, I'm not saying that the things Joe wishes for are bad things. But the absence of them does not make something closed.
Right, that's why it's been in the top 5 of HN for two days.
> Even RMS is probably saying, "You're being a bit pedantic here[...]"
Have you ever read a word of RMS? :P
His position would be that Hewitt is being insufficiently pedantic, particularly with regard to the complete closed-ness of the hardware and manufacturer/carrier-specific software.
If you look at this the right way, every checkin is a new fork. There's no such thing as a mainline branch. There's absolutely no reason you can't simply fork some branch of Android and start working on it and tell everyone to work from your branch. Each developer has the choice, including Google to use your branch or checkin to a different fork.
Again, AFAIK, Google is not preventing anyone from branching and checking into a new branch. This is fundamentally no different than Google allow public commits, but then branching after each of their checkins.
To put it another way, if you were to take the 2.2 branch of Android and you forked then contributed an incredible 7" tablet UI experience that Google nor Apple could ever match, you may have forced Google to begin picking up your branch.
There's is nothing stopping any of this from happening, except the apparent attitude that Google needs to bend over backwards to accomodate people who haven't shown any inclination nor aptitude to an interesting contribution.
Goodness, I can't believe I'm defending Google.
They can fork the code and do whatever they want, but that fork doesn't have a lot of value if it doesn't have distribution. They can fix a bug, but they can only fix it for themselves, not their customers who get Android through retail stores.
You may of course say "Google has no obligation to let people contribute to their distribution". And you'd be right. But this is like saying "I am under no obligation to smile and say hello when you enter the elevator". You'd be right. But people do it anyway because it makes the world a better place.
Likewise, Joe is saying it would be nice if Google allowed people to contribute directly to the main distribution of Android. They're under no obligation to do so, but it sure would be cool.
I hope this clears things up.
Full disclosure: I work on Chrome at Google which has some of the features Joe is asking for in Android. I also wish Android had them, but I have no special insight into why they're missing.
Also, try contributing to the Linux kernel.
I did, and now it includes some of my code. What's your point? Their standards for code quality are high, but let's face it, the kernel wouldn't have reached 10MLOC if it was written like Wordpress. Android won't accept your patches at all.
Speaking of the kernel, the Android project hasn't been very good about merging back their kernel patches. Getting better, but they're now pretty far from mainline.
I personally think it would be nice if nothing shipped with the GPL as it restricts my freedom, but I won't claim gcc is not open.
The issue isn't if Android can improve along a given vector. Rather it is is Android a closed platform because there exists a branch that doesn't take public contributions or have a public tree. I don't think so.