The Open Source Definition, written by the folks who invented the term "open source" a few months previously, doesn't say anything about the stuff Joe criticizes in Android. He's simply mistaken about the meaning of the term.
Also, the Android development policy that Joe criticizes is essentially identical to the way Emacs was developed up until the last decade. Emacs was the example "cathedral" in the original version of "The Cathedral and the Bazaar," for those who don't remember. It's well-established at this point, 13 years later, that bazaar-style development works better for a wide range of projects, but that doesn't mean that cathedral-style development doesn't qualify as open-source. It's just inefficient and frustrating.
"Open-source" simply means that anyone is allowed to read the code. We may associate certain release schedules and commit policies with typical open-source projects, but those schedules and policies are not mandatory. Or even common. Browse GitHub or SourceForge to see the typical choices - "when I can be bothered" and "only me" respectively.
I understand that Joe is in a position where he will need to deal with changes in the OS when it is released, but he still comes across as a self-entitled whiner.
I disagree. I agree that Android fulfills the license requirements of open source. But it delivers few of the practical benefits that were meant to stem from the term (control of your devices/computer, the ability to modify the software you use). So in spirit it is nothing like what we would traditionally call "open source" and it is certainly nothing to brag about vis-a-vis iOS.
I see no sense of entitlement in his complaints at all. They seem reasonable based on the difference between what I might expect from an open source project and what Google actually delivers. This is rare considering I tend not to like open source software or even the basic principle of it.
We can fork and alter the code, and deploy it to our devices. I'll grant that it is not easy on some devices, but you can't argue against the carriers' right to change the code without compromising your own.
Google touts the Android platform's openness as a benefit for developers and end-users.
And yet:
As a developer, I have, if anything, less visibility into upcoming changes to the Android SDK than I do into upcoming changes in iOS 4.2.
As an end-user, Android's openness hasn't stopped carriers from foisting unremovable crapware on me, or given me any more control over my Droid X than I have over my iPhone 4.
But whenever anyone dares to point out this disconnect between Google's marketing rhetoric and reality vis a vis openness, suddenly "open" means nothing more than "fulfills the letter of the contractual agreements of the GPL version 2 and provides no promises of anything beyond that". It's farcical.
As a developer, your customers can run the app even if the app store says no.
>As a customer
As a customer, you can choose from a range of android powered devices including those not approved by Google. The nook would likely not exist were it not for Android.
As a developer, if my app doesn't make it into the main app store, I'd be throwing good money after bad by trying to run about trying to set up my own payment infrastructure and trying to convince people to buy and side-load my app (which, among other things, Android's openness would keep AT&T Android users from doing anyways). From a pragmatic standpoint, there is no practical benefit to this openness for me, as a developer.
As a customer, the freedom to "choose from a range of Android powered devices including those not approved by Google" simply means the burden of having to perform a complicated cost-benefits analysis, deciding which specific combination of carrier crap-ware and carrier locked out features, or unsubsidized hardware from little-known Chinese manufacturers is least un-appealing to me. I have to spend an enormous amount of time researching to ensure that the official app store is supported on such-and-such phone, to find out whether tethering works freely or not or whether I can side-load or not on such-and-such carrier. From a pragmatic standpoint, there is no practical benefit to this openness for me, as an average consumer.
Openness is only a virtue if it has practical benefit. If Google is arguing for openness from a purely dogmatic, non-practical standpoint, then they should be honest about that instead of pretending that Android's openness is some kind of unicorns-and-candyfloss fun ride for app developers and end-users.
>As a developer, if my app doesn't make it into the main app store, I'd be throwing good money after bad by trying to run about trying to set up my own payment infrastructure and trying to convince people to buy and side-load my app (which, among other things, Android's openness would keep AT&T Android users from doing anyways). From a pragmatic standpoint, there is no practical benefit to this openness for me, as a developer.
Or support it with ads?
>As a customer, the freedom to "choose from a range of Android powered devices including those not approved by Google" simply means the burden of having to perform a complicated cost-benefits analysis, deciding which specific combination of carrier crap-ware and carrier locked out features, or unsubsidized hardware from little-known Chinese manufacturers is least un-appealing to me. I have to spend an enormous amount of time researching to ensure that the official app store is supported on such-and-such phone, to find out whether tethering works freely or not or whether I can side-load or not on such-and-such carrier. From a pragmatic standpoint, there is no practical benefit to this openness for me, as an average consumer.
This seems no different to me than any other free market. I buy the argument that Google should simplify your purchasing decision by being more selective with the trademark, but that's an entirely different argument than the one we are having.
How "open" is a device whose OS has been configured so that you cannot remove certain applications from it?
Sure the original OS is open source (and "open" as in visible), but how open is the platform when some companies put chains and locks around it?
I can see how in Google's eyes the core platform is open - code is public, it can be forked, etc. But it's still an environment in which some vendors are free to lock down the system they sell to end-users to the point where a user is no longer free to uninstall programs they don't want. This dilutes the "openness" of the overall platform, since the lack of freedom and control on some Android devices reflects on the average perception of Android.
The difference is that Sony isn't running around marketing the PS3 as being superior to the XBox because of its "openness". Nor is Kaz Hirai tweeting about cloning Sony's Linux kernel repo as if it were some notional benefit over the XBox for consumers.
So you're now taking the position that how open Android is can depend upon how they have marketed their openness, and how misleadingly they may have done so? That's nonsense. At the end of the day, "fork it, mod it, build it, deploy it to any device that will run it" still applies. That's unavoidably and factually open. Radically so, given where this particular market was just 3-4 years ago.
I'm astonished at how muddled and downright bizarre the argumentation on these threads gets. Yes, they don't develop future platform versions in the open, they just make delayed code dumps. Annoying. But hardly "open"-negating. The process may not be open - the deliverables are. And all of the usual advantages of that open are in full effect with Android and its many, many active mods.
Yes, carriers are free to add unremovable shovelware, to try and prevent flashing with the aid of the hardware manufacturers - all that nasty stuff they are free to do with any apache/bsd-licensed codebase. It's very hard to understand how this is Google's fault, or why it somehow renders the underlying platform "not open". Should they have stridently disallowed such behavior from day 1? I'm guessing that would have left them with a lot fewer partners, and a go-nowhere platform, but hey, at least they would have been pure as the driven snow ideologically.
Saying with a straight face that Android is "not open", "not meaningfully more open than iOS", "nothing like what we would traditionally call open-source", and so on is ridiculous hyperbole. The only interest I take out of these instant train wreck threads is in playing a game: guess at what horses individual commenters have in the mobile race, that their perceptions can become so severely distorted.
My consistent position is nothing more than that Android is not open in a way that is consistent with any of the claimed benefits Google or other Android promotors have asserted it provides.
It's certainly open from a perspective of "you get the occasionally tarball of source". Nobody is debating that. This isn't about whether Android is open or not; it's about whether the way it is open is at all consistent with the way it's openness is marketed to end consumers.
For the vast majority of users that openness, from any practical standpoint, might as well not exist. The popular, high selling handsets are simply too locked down for them to benefit from anything anyone does with those tarball drops.
Which is fine, but it's certainly not the way people paint the platform when they talk about how much better Android is for the user thanks to its openness, because the openness is primarily for the benefit of handset makers and carriers who can use those tarballs.
For what it's worth, I think this whole game of treating a thriving market like its some kind of horse-race is ridiculous. 90% market share was an aberration in the PC market; there's going to be room for multiple competitors for decades to come. There are no sides. Nobody is going to win anything.
>This isn't about whether Android is open or not; it's about whether the way it is open is at all consistent with the way it's openness is marketed to end consumers.
I keep hearing this, but can you demonstrate where Google has represented Android as the product of some vibrant and continuous interplay between the wider open source community and their own engineering teams?
Interestingly enough, there's more of that going on than you're giving credit for. http://android.git.kernel.org/ isn't an iota of what it could be, but it's certainly more than an "occasional tarball of source".
Look, I think what Google is doing with the periodic drops is pretty lame - but the Android software is open. More than that, they've tried to spur on some pretty radical freedoms - like my Nexus One which they convinced HTC to provide fully unlockable: a simple command and a warning screen away. This was unthinkable not so very long ago, certainly in smart phones. Frustratingly enough, the market wasn't interested, but they tried. And may well try to keep pushing that bar forward. But you'll give them no quarter - they are damned for not reshaping things to your preferred standards in one fell swoop, they are responsible for both the hardware and the regressive policies of every idiot vendor whose usage of the platform they bless.
It's a bit overdone to say that "the openness is primarily for the benefit of handset makers and carriers who can use those tarballs". I'm interested in where you've acquired this insight into Google's treacherous true motivations, and I'm surprised to learn that it's so hard to take those "tarballs" and get them running on arbitrary hardware. That damned linux kernel, so notoriously hard to get running on variant hardware.
When you get down to it, your real problem seems to be that Android strikes a fairly neutral deal, allowing the carriers and manufacturers to keep their freedoms too. They're free to try to turn back the clock, release terribly gimped phones, and just generally be the dicks that we have always known them to be. We're free to reject it, and should.
There's another difference: most of the PS3 software is very much closed, whereas most of Android's is open source. You don't just get the kernel, you get pretty much everything else you need to make a phone work. That's pretty impressive.
Well, in 2007, Jobs was just barely able to get one carrier to surrender some control to the handset manufacturer. The iPhone would have been a non-starter if Jobs had been asking for all control over the software to be surrendered to the consumer.
"...or given me any more control over my Droid X..."
Why did you buy the wrong phone? It was all over the news, that Motorola locks down the bootloader. How is that Googles fault? How does that make Android less open?
What about all those Linux boxes with locked bootloaders? How do they make Linux less open?
You can't always deploy your altered versions to your devices. Carriers have been experimenting with various techniques for locking down devices that have been rooted in any way, and the only completely unlocked Android phone (Nexus One when sold through Google) was a flop.
If your reply to this is that you can always bypass whatever DRM they put in place: well, you can do that on the iPhone too. And if you're willing to count something as "open" when reverse engineering is required to use modified software, then the availability of source code for a reference implementation ceases to be a meaningful difference. Android is no more "open" than iOS under that definition, just easier to work on.
You mean: You can't deploy your altered version to any device
Assuming you did not break it while altering. Then you can always deploy your altered version to the ADP-Phones. For example the Nexus One. And this is not a theoretical possibility. I have done it. It works. I use it every day since.
Open is not the same as "open, if you run it on special developer hardware". The Android platform cannot really be said to be open if none of the consumer products based on it are open.
I am with you here. The manufacturers should not be allowed to call their phones open if they lock the bootloader so you cannot install unsigned images.
But Android as a platform is still open. The same way that Linux is still open.
"But it delivers few of the practical benefits that were meant to stem from the term (control of your devices/computer, the ability to modify the software you use)."
Of course it does. A lot of people I know run community mods of Android of their phones, or at least used to do so for a while. Cyanogen seems to be a popular choice: http://www.cyanogenmod.com/
That some phone vendors choose to make it difficult to install your own version of Android is not the fault of Android. Maybe Android could have a license that forbids the practice, but it would be debatable if that would be more or less open. Also I'd argue that if you care enough to install your own custom OS, then you are likely able to figure out which phone to buy (ie Nexus One).
It seems however that the "only publish source code of releases" poses a problems for vendors considering releasing Android based hardware. It probably gives Google at least a little bit of leverage.
Which might be a good thing - most anti-Android people seem to complain that Google is not able to exert enough pressure on manufacturers to maintain quality standards.
You have all that freedom with Android. You have the control over your device with Android. You don't have it on every device. But how is this Googles fault?
Android is so open it can be closed down by anyone. But there are Phones that are not closed down (ADP1, Nexus One) and hopefully there always will be.
Just because customers choose to buy phones that are locked down does not mean that Android is less open.
If Google actually cared about Android being open, they would have used GPLv3, to ensure that it stays open. In reality, they simply couldn't negotiate with carriers as well as Apple, so they've chosen to re-frame their capitulation as "openness".
Control of your devices falls under the carrier, not Google. Blame the carrier if you can't re-flash your phone to your heart's content. You certainly can modify the base OS, with the exception of a handful of binaries. If the binaries in question (Gmail, YouTube, the market) bother you that much, there is nothing to stop you from writing your own versions.
I think you are confusing OEM and Mobile Operator missions with open source..they are not that same..Joe makes the same logical mistake in this debate..
If I were to walk up to RMS and say I've got a Free Software mobile platform, but that the hardware/firmware is designed to brick itself if you start customizing the OS, and that it comes loaded up with non-Free software that you can't remove without finding a way around the firmware bombs, would he hail it as a grand advance for freedom?
"The hardware". You mean The Android Phone? The only one out there?
He'd probably also complain about mobile phones in general for other reasons ("portable surveillance device", etc...)
I'm not RMS though, and Android is 'pretty good', if not perfect. If there's something better out there in terms of open source and open development, then let's hear about it.
I agree. Joe can be somewhat of a whiner. Every time he's on the news, it's probably because he whines and complains about something (Apple app store policy, the state of web development, Android openness, etc.)
Before Android the mobile world was a much sadder place. There was the undisputed king, the iPhone, controlled by an increasingly ego-maniacal tyrant. Then there were all the manufacturers and carriers flailing around uncoordinated unable to respond. Google came along and offered the world a free open platform that everyone could rally around to put up a fight against the encroaching monopoly. Google makes no money off of Android but they've put massive resources into it. Their only benefit, the freedom from Jobs' capriciousness, is also a benefit to everyone else.
I don't understand the Google hate, they gave the world a free OS, what is there to hate about that? Even the most ardent Apple fan should be thankful for the competition. Yes, it's true that the carriers suck, but they would suck a lot more if they were only pushing LG feature phones or whatever, instead they get to sell a powerful worthy system to the masses.
Uh, actually there was Nokia if your memory goes back more than a few years. I agree with the rest of it though. "Free stuff" is pretty cool in my book!
Google makes no money off of Android but they've put massive resources into it.
You honestly believe this? Then the must not be making tons of money off of search either. Oh but they are, to the tune of millions. And Android? $1Billion in revenue.
No one hates Google, but a kernel doesn't make an OS. Which is why Linux is known as GNU/Linux. By that logic OSX is also open source, you can even download and compile their kernel from here http://www.opensource.apple.com/
People are hating because they were promised open, but what they got comes with a lot of strings attached. What good is downloading the kernel and running make if you have nowhere to install it?
You've got more than a Kernel, which was already open, as Android is based on the Linux kernel.
It's interesting that it isn't a common unix or GNU. The whole software stack up from the kernel is different to anything you see elsewhere (I understand that MeeGo, another Linux-based phone OS takes a more standard approach, thus it be more comfortable to hack on, once it stops being vaporware).
But AOSP does host code for the whole middleware and a couple of applications. What is missing in AOSP are some userspace drivers, the code that runs on the radio hardware ("baseband" in iPhone speak), and the Google services and brand.
To continue your OS X analogy, it'd be like getting code for the whole OS, except for the stuff in /Applications.
The problem with Android is that this software is useless if you don't have hardware to run it. And unlike a computer, where I can go to the store, buy a PC, download a Linux distro and run it on that hardware, most phones are tivoized and won't let you run software not signed by the manufacture.
So you need to buy a special dev phone (N1 included), pull the binary drivers from the installed firmware, build AOSP from source, and flash it to the phone. And then you'd be missing the Google-candy. You can also get OpenMoko, which I think have all its drivers open.
But I guess most people don't want to compile software for their own phone, just like only a few people build their OS from source. Most even never bother installing an OS, just using what came pre-installed. The hate against Android phones is from users wanting timely software upgrades, and no carrier-mandated crap. That, I'm happy to say, is mostly an American problem. Carriers sell phones the world round, but outside the US, caring customers (which are still a minority -- HN readers to the contrary, not everybody cares about what software her phone has), buy handsets from a 3rd party, and those have less limiting crap installed, as they need to satisfy the costumer, not the carrier.
Except most of the drivers, the firmware, and some of the applications are not. I think most of developers would even be satisfied with a binary blob (ala nVidia or Broadcom) that would allow them to use the hardware, but not even that exists.
I know that some of the drivers are not open source. 'Most'? Let's talk concretely: does anyone know which ones?
Applications: sure, you don't get some of the Google stuff, but so what. You can run the system without that.
Android is not 100% free. But as far as I know, it's closer than anything else out there, and thus a good starting point for those wishing to work in that direction.
And the system itself is pretty open - it's easy to see how things work and interact.
Google makes money off Android by licensing their closed source applications, mobile advertising, and taking 30% of Android Market sales. Of course it's fine they want to make money off Android but if we're talking about openness that's kind of like having an open source razor with closed razor blades.
"Open source" != "open project." This issue comes up every so often on the Lua list, and I think Roberto Ierusalimschy's explanation describes the situation with Android pretty well.
I think there's a separation between openness (freedom) vs openness (transparency).
Android is open as in freedom, you can install it anywhere you want, you can modify the source code, you can build stuff on top of it, you can root it, etc.
But it is not open in transparency as Joe points out. They are not open about what they are working on. His arguments against Android stem from that. The not allowing read/write access and the latest and greatest all relate to the fact that Google doesn't want to be transparent with the future of Android.
Actually, the iPhone dev toolkits and prerelease announcements are pretty good at providing feature information for iOS developers. No they're not available years in advance, but it's still more than Google. I think iOS is probably more transparent in this sense.
Still, I think neither are completely open and a misappropriation of terms has just lead to 'open' being more marketing bullshit.
It's always easier to develop for a system you have the code for, even if you can't modify it.
With iOS, you get more time to fix your code, but sometimes you have to speculate why the system works they way it does; with Android, the SDK drops later, giving you less time to code, but it's easier since you can find out why the system behave the way it does.
It sounds like the complaints against Android are [1]
"Steering" discussions do not take place on a public mailing list (or community input is generally disregarded).
Depending on the involvement of the community (in actually doing instead of bikeshedding) compared to the company, this isn't necessarily a bad thing. I like open development, but if the community really has enough motivation, they are welcome to fork the project. Git makes it as easy as possible to migrate patches [2].
Some new development does not go into the public repo right away, instead residing in a private repo until some merge window prior to a major release.
Keeping it in a separate repo is probably a good idea if the changes are likely to cause occasional breakage. Again, visible branches (and/or RFC patchsets on mailing lists, a la LKML), but they do have a rapid release cycle and the full history is available after it is merged.
They don't hand out commit access to the community.
Is there just no email address to git send-email your patch sets or to send pull requests? Or do they ignore patches that show up? That's just bad administration and it's easy enough to create a community fork. The specific complaint about outright commit privileges is silly, Linus does not hand out commit access to anyone (including Ingo, Alan Cox, Andrew Morton), instead he pulls from them when they are ready.
I'm not trying to defend Google, they certainly have a history of being a poor to mediocre open source citizen. But "no different than iOS" is a gross exaggeration. Note that the carriers and hardware vendors may be far more to blame for the privacy, it's likely that they require limited-time NDAs so that branches cannot be made public until a release.
[1] I don't have specific experience working with the Android git repository or trying to send patches upstream, so I don't know if the complaints are entirely factual.
[2] It's not so rare for Open Source (adhering to the strict definition, but not open development, obviously) projects to only publish release tarballs. In contrast, Android publishes their repository with daily activity: http://android.git.kernel.org/?o=age
Android is open source. Android is not developed by an 'open community', if you will. It's a legitimate complaint, I think, but I wouldn't let the perfect be the enemy of the good. If someone wants to invest a lot of work and time, they can very much fork Android if they want, and develop it however they see fit.
Also, something else that isn't brought up a lot: Android has a fairly open architecture. Intents let you plug in various things in various places so that you can choose which app handles what.
Mobile developer speaking here. As far as I can tell, most of the grousing about Google not being "open source" revolves around two points - one, they don't accept outside contributions, and two, you can't just install on whatever hardware you'd like / carriers do crappy things.
As far as point two goes - blame the carriers, not Google. It's not even necessarily clear that the carriers are in the wrong to do things like this - part of open source is that you are free to modify as you see fit. Sprint exercising this very right is why they have their own interface now. If all of the carriers choose to pull this shady crap, put the blame where it belongs.
As for point one - who ever said they have to? First off I'm not sure I'd want patches from Joe Schmoe running on my cell phone, and not even Google has all of the resources they need to review every submission they'd get. Secondly, plenty of open source projects are notoriously stingy about who they hand out commit privileges to - and the quality of the software in these cases more than justifies this policy.
If you're free to read, download, modify, and re-distribute the source code as you see fit, it's open source. If a third party intervenes to make this pragmatically difficult, then that's a different issue. Google has certainly been more open than any number of other software companies - only Apple really comes close, as far as I can tell, and they still hold back huge chunks of their code. Google deserves the press they get for being open source, because at the end of the day, they are.
Google wouldn't just take patches from any Joe Schmoe, and it certainly wouldn't be a huge overhead to deal with them. It would be similar to how a project like Rails takes community patches: people wanting to contribute strike up conversation in a bug tracking program or IRC with some core developers. They say "hey I wrote this cool patch that fixes this ticket". The core team member takes 20 minutes to check out the patch, and he merges it in to his branch and then commits it to the core repo. After this community member does this a few times, the core member begins to trust and understand their coding style, and gives them commit access.
Doesn't take a ton of resources, and it encourages an open and vibrant community. The benefits of doing this "up front work" in vetting a new committer is, well, you get a new committer knocking off tickets.
"Point I am trying to make is, Rubin bickering with Jobs is a farce, because both refuse to share the one thing that matters: control."
I would say the one thing that matters is a consistent and polished experience, and that the iPhone will always have an advantage over Android in that simply because Apple doesn't play this pretend "open" game.
What's the point of forking something you can't install without voiding your warranty? Especially knowing that you can't redistribute your fork because average users won't hack their phones to install it, and even if they did your fork would lack essential applications like an email client or maps?
Android is no more open than Tivo, and in fact is the perfect example of what the GPL3 advocates were warning us about.
you're confusing hardware with software, i can download, modify, sell, distribute, edit, sell the edits, and legally execute the code for any release of android, and couldn't even begin to do any of that for any apple OS. Chromium and android are free, safari was built off of a GPL code base, but OSX and iOS are locked down
I seriously doubt Google/HTC would really be able to deny a warranty claim for a bootloader-unlocked N1, at least for customers in the US. See the Magnuson-Moss Warranty Act. A manufacturer can't deny warranty coverage based on a user modification that has no bearing on the defective part.
If the trackball falls out of my phone and I send it in for warranty repair, there's zero chance they'll be able to successfully claim that the problem was caused by me unlocking the bootloader.
Just what, exactly, are you proposing happen in the sphere of source code that's going to affect manufacturers' warranty process, really?
Open source doesn't mean everything is amazing and you won't have to deal with logistics and deployment issues. You have the code, but if you want to get serious and get more than a dozen installs, you should expect to do some heavy lifting of your own and take care of some of the business aspects of the situation.
Not everything can be solved by source and a code license.
It isn't hyperbole. Like Tivo, Android can only be installed on hardware from manufacturers that are hostile to unofficial software. Most handset manufacturers go out of their way to make installing unofficial builds difficult. They all void your warranty if you try.
The fact is that there are no Android forks worthy of the name and never will be so long as hacking is required to install it. Open-source software that can never be installed is only 'open' in the most technical sense.
So put your money where your mouth is and buy from those who don't do that. You have that possibility with Android: Nexus One.
> The fact is that there are no Android forks worthy of the name and never will be so long as hacking is required to install it
I installed Linux for the first time in 1996, downloading a bunch of Slackware floppies over a 28.8 modem (IIRC), and it certainly took some hacking to install. Granted, the vast majority of people out there aren't like that, but it's kind of odd on a site called 'hacker news' to see people who seem oblivious to the hacker spirit, and what a group of motivated people can accomplish, given time.
The reason there are no (visible - I'm sure there are a few minor ones out there) forks of Android is because Google is doing a decent job, and mostly racing ahead of where forkers would be going on their own.
"The Nexus One is available for sale in the US to registered developers" - and my guess is that that's not a particularly high barrier to entry.
Also, being in Italy, it gives me a "buy from vodaphone" link. Unlocked phones are much more common here in Europe, so apparently they're still selling them here: https://offerte.vodafone.it/nexus-one/
i) There's a difference between it being utterly impossible to modify the software on the system, as in the case of TiVo, and "manufacturers [being] hostile to unofficial software". There is no shortage of Android devices that do allow you to run your own software on the system.
ii) TiVo was only compelled to release the modified kernel and a few GNU utilities that they shipped on the system, and that's exactly what they released. Can you download the source for the TiVo software itself? Here's a hint: the answer is "no". How much of the Android source beyond the modified kernel and GNU utilities is available? Oh, all of it.
We can debate whether it's open or not all day long... If one of the most respected engineers around isn't happy with Androidm Google's doing something wrong.
I would say yes, although his issues against the app store have been somewhat remediated by Apple's latest easing up on developer restrictions.
I don't see this as an either/or scenario. As a developer, I can be dissatisfied with both Apple and Google. As someone who is pragmatic and not espousing a philosophy what matters is which I'm dissatisfied with more. There's no right or wrong answer to that question, each developer has to decide that for themselves.
Also, the Android development policy that Joe criticizes is essentially identical to the way Emacs was developed up until the last decade. Emacs was the example "cathedral" in the original version of "The Cathedral and the Bazaar," for those who don't remember. It's well-established at this point, 13 years later, that bazaar-style development works better for a wide range of projects, but that doesn't mean that cathedral-style development doesn't qualify as open-source. It's just inefficient and frustrating.