
Developer Joe Hewitt Tears Into Android’s Definition Of “Open” - ssclafani
http://techcrunch.com/2010/10/19/developer-joe-hewitt-tears-into-androids-definition-of-open/
======
kragen
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.

------
shib71
In this case, Joe is wrong.

"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.

~~~
jamesaguilar
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.

~~~
shib71
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.

~~~
msbarnett
That's just shifting the goal-posts, though.

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.

~~~
moultano
>As a developer

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.

~~~
msbarnett
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.

~~~
moultano
>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.

------
jedbrown
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>

------
guelo
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.

~~~
yardie
_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?

~~~
snotrockets
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.

~~~
caf
Re "tivoized" hardware, I'm starting to seriously wonder if the drawbacks from
the invention of asymmetric crypto have outweighed the benefits...

------
compay
"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.

<http://lua-users.org/lists/lua-l/2008-06/msg00407.html>

------
HaloZero
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.

Either way, iOS is neither.

~~~
Locke1689
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.

~~~
snotrockets
But they only provide binaries.

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.

------
pkaler
Android source code is licensed under the GPL and Apache licenses and
therefore is open for developers.

Most Android hardware is carrier locked, has proprietary firmware, or has
proprietary services loaded on top and therefore is closed for users.

------
dondii
There are commits from a couple of hours ago:

<http://android.git.kernel.org/?o=age>

What am I missing?

------
grammaton
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.

~~~
cullenking
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.

------
davidw
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.

------
Skroob
"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.

~~~
jamesbritt
"I would say the one thing that matters is a consistent and polished
experience, ..."

Hey, as long as the trains run on time, we're all good.

~~~
MrScruff
Thanks for the Godwin invocation.

~~~
allwein
I think the trains reference involves Mussolini, and not Hitler, so Godwin
remains uninvoked.

------
moultano
So fork it?

~~~
gamble
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.

~~~
snissn
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

~~~
rimantas
You don't know much about OS X, do you?

~~~
rimantas
<http://opensource.apple.com/> Yes, you won't get _everything_ from there. But
where can I get a source for Google Voice?

------
dejb
And the Apple Fud campaign begins to take hold...

------
bretthellman
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.

~~~
brown9-2
He's not happy about Apple's app store either. Are they doing something wrong
too?

~~~
m0nastic
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.

------
kefs
Joe should stick to developing..

[http://stackoverflow.com/questions/3077289/facebook-
android-...](http://stackoverflow.com/questions/3077289/facebook-android-
intent)

