summaryrefslogtreecommitdiff
path: root/old/published/androidopensourcenotes.txt
blob: 02f65b7856b931f0fb2516880b109b6a0e13b261 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
Is Android Open Source?

Steve Jobs stirred up a hornets nest of angry Android developers and application creators when he suggested, during a rather lengthy diatribe against Android, that the operating system was not really "open."

Andy Rubin, Google's Senior Director of Mobile Platforms, who oversees the Android project responded by creating a Twitter account and posting the code necessary to download the Android source and compile it on your PC -- something Rubin calls "the definition of open."

Google is famous in programming circles for redefining words to suit its ideas -- take beta for example, which used to mean pre-lease software, but which Google says means "regular updates and constant feature refinement." Rubin's definition of "open" is a similar linguistic shuffling since compiling code alone does not make a piece of software "open."

Bruce Perens, who coined the term "open source" and has been working on its behalf ever since, defines "open" around three core traits: a license that insures the code can be modified, reused and distributed; a community development approach and, most importantly, ensuring that the user has total freedom over the device and software

"The fact that you can check something out and compile it," says Perens, "doesn't mean you have the right to use it!"

The Android OS is, in strictly legal terms, open source. Android is released under the Apache 2.0 software license which allows anyone to use, modify and redistribute the code. But while it might meet the letter of the law, it falls somewhat short of what might be called the spirit of the open source.

It's the lack of community-based development that Android's critics say makes it no more "open" than Apple's locked down, decidedly not-open iOS model. As Perens says, "most Open Source projects [include] instant access to changes as they are made... and an open door for anyone to participate."

Unlike major open source projects like Firefox or the Linux kernel, you can't see what's happening behind the scenes with Android, nor can small developers contribute to the project in any meaningful way. Google releases major updates to Android, typically at press conferences not unlike those Apple uses to show off new iPhone features. 

Once the code is release Android developers can download it and do what they want with it, but they have no way of seeing what's happening behind the scenes every day. If you want to know how Firefox changed last night -- however esoteric those changes may be -- you see the changes on the Mozilla site. The same is true of the Linux kernel, Open Office and virtually every other open source project with a website.

It's not true of Android. While Android may have the legal licensing to qualify as open source it utterly fails at the far more important transparency and community.

Facebook's Joe Hewitt, who is rumored to be working on a Facebook-branded OS based on Android, says that the lack of transparency in the Android development process makes it "no different than iOS to me." Hewitt goes on to add that "open source means sharing control with the community, not show and tell."

Android is basically an "accept what Google gives you" or fork the entire codebase proposition. Other than the ability to fork Android off and develop your own OS based on it, Android is really no different than iOS, which works on a similar "take what Apple gives you" model.

Unfortunately, even if Google were to develop Android in the open, as the Mozilla foundation does with Firefox, it probably wouldn't help Android be any more open. While Google's approach may be a disengious use of the word open -- as Hewitt says, Google is doing "bare minimum to meet the definition of open" -- there is another problem, the phone carriers.

Perens believes "the problem is the wireless carriers first, and Google second because Google enables the carriers to close the Android platform from the user's perspective." In other words, while you might be able to copy and paste the cod from Rubins' tweet and take a look at Android yourself, what arrives with actual phone is every bit as tightly controlled as iOS.

Just as there are Jailbreaking hacks for the iPhone, there are rooting hacks for Android that attempt to give the end user some control back. That Android is less controlled by its Google parent in other ways -- the Android Market for instance is not tightly regulated like Apple's App Store counterpart -- is a secondary benefit. Neither device is open in the sense that the end user can modify it as they see fit -- customize it perhaps, but adding a new theme and downloading whatever apps you like are not the goals of open software.

The real goal of open software, as Perens and others have help define it over the years, is to ensure that you can do whatever you want with it. As anyone with an iPhone or and Android phone can tell you that's not the current state of affairs nearly every phone is tightly locked to carrier specs.

The carriers argue that open phones would threaten the network (Steve Jobs argues that an open phone would threaten the user experience). AT&T used to argue both of the same things when it still maintained total control (what Jobs likes to call an "integrated" system) over land lines -- you rented phones from AT&T or you didn't have one . Several massive anti-trust lawsuits and the breakup of Ma Bell later we've ended up back in the exact same spot. So even if there were a truly open source OS for your phone it's unlikely it would ever truly be open by the time it arrived in your hand.


but again, that's not unusual either. 

A: Technically yes. It's licensed under the Apache 2.0 license which
is oscon approved.

Longer Answer: Still yes, but it's different than what many people
think of as open source. Google pushes out updates and works on it
primarily on its own, in the dark. There is no real way to make
contributions unless you're part of the Android team and there is no
way to see what's going on in the trunk. But then again the Linux
kernel, I believe Firefox and quite a few others (Django) work in much
the same way, except for the working in the dark bit. All of the
others allow outside contributions, but only approved people can
actually check in code, that's pretty standard.  What I think irks
some open source folks is that Android is basically an "accept what
Google gives you" or fork the entire codebase proposition, but again,
that's not unusual either. The work happens behind closed doors and
that is a bit unusual in the open source world, but even the FSF
people, as far as I can tell, don't really give a shit how you create
your code, just what the license says you can do with it when it's
released. In other words, to be open source doesn't mean you have to
be transparent while you're in the process of coding.

That said, whether or not Android is truly, technically "open" doesn't
really have any impact on the end user or the applications developer,
which is where Hewitt's tweets come in. What Hewitt is pissed about is
that neither platform gives you any hint of what's coming until the
controlling party decides to unveil it. Whether or not being able to
contribute back and having outside maintainers would really give you
any hint of what's coming is probably debatable, but his point is
valid. (Might even be interesting to hear what HTC or Motorola's devs
think about the release-and-wait approach that Google uses, but I
suspect they wouldn't talk). Also, there's something called a
Contributor License Grant, which is part of the process that would
allow people outside Google to contribute, and may, for all we know,
be how Motorola, HTC et al give code back to Google, but obviously the
process is a little more complex, legally and technically, than clone
a github project, which seems to be the working definition of open
source in a lot of people's minds.

So in the end, the only people really effected by Android's licensing
and "openness" are OEMs like Motorola or HTC (and perhaps Facebook if
Hewitt really is working on a Facebook phone OS). They take Android,
make their customizations (possible because it's open source) and ship
whatever. Hence the fragmentation that Jobs rails on about. Really
though, if Google didn't use the major release model it uses the
fragmentation would probably be worse. Instead of three releases you'd
have countless releases -- e.g. Cupcake -r124934, Cupcake -r58349 and
so on approaching infinity.

But from an application developer's point of view Android is really
just like iOS. What's more "open" in Android's case (and more relevant
to app devs) is its application store. But if Apple got rid of its
approval process and let anything and everything into the App Store
then really, from an app developer point of view, the two would be
pretty much the same thing, in other words Android really isn't  (on a
purely practical level) all that open, iOS is just very, very closed.

In that sense I think Jobs' argument that thinking of the difference
in terms of integrated and distributed models is actually not that
much of a reality distortion. Which works better is something for the
consumer to decide.



















>
> Correct me if I'm wrong, but Android is the only project I've ever
> seen in the open source world that restricts checkouts to official
> Google releases. There seems to be a way for outsiders to contribute
> provided they sign the right papers, but it's a very unusual way of
> working. So in the end what's more important -- the license used or
> the level of transparency the project gives?
>   
There are three important parts of "open".

    "Open Source" means a particular set of rights that allow redistribution, modification, and use without discrimination, and available source code.

    "Community Development" is a part of most Open Source projects, and includes instant access to changes as they are made, a relatively "flat" organization run as a meritocracy, and an open door for anyone to participate.

    "User Freedom", is whether the user owns and controls the device or the device controls the user. When Steve Jobs says you can't have Flash on the iPhone, or you can't have a particular application in the app store, the device is controlling the user rather than the other way around. This has some sinister implications, for example the fact that mobile devices are becoming the gateway for information that influences our vote, and someone else is controlling what information we can read and hear through that path. This is one reason that so many iPhone users are concerned with jailbreaking. Just from the sound of that it's clear that some people understand the magnitude of the problem. And of course the problem exists on Android phones as well, unless you buy a special developer version that many cellular carriers won't accommodate.

> I don't know if you saw Andy Rubin's tweet, but he basically said the definition of open is the ability to check out the code and compile it.
That's way insufficient, because the fact that you can check something out and compile it doesn't mean you have the right to use it! That's why we're so concerned with the license on Open Source software.

>  But you and many others seem to be saying that there's more to
> open source than that... could you outline some of the thing you
> believe are necessary for something to truly be open source? And what
> specifically could Google do if it wanted to make Android more of an
> open source project.
>   
I think the problem is the wireless carriers first, and Google second because Google enables the carriers to close the Android platform from the user's perspective. The carriers really should only be selling us a network connection, but they have too much control over what the device will do for the customer. This is because the carriers have a subsidy model for the sale of phones, and thus the device comes from the carrier and is prepared to the carrier's specification. And of course the carrier advertises how functional its chosen devices are, but they have a lot more trouble with openness. So most people have phones that are thoroughly locked down to the carriers rule-set and not really in the user's control.

Now, it happens that one of the networks that I know of will let you buy your own phone without the subsidy, and will charge you $20 less per month. So, I have a Nokia n900 that I control entirely, I paid about $500 up front and at the end of the two years a contract would usually last I will come out a few bucks ahead. I can develop right on the phone, if I want to, it doesn't require a desktop. Anyone with that phone model can run my software.

>> 2. That the post-processing by the carrier isn't open at all.
>>     
> That's true, but, according to the Apache license, perfectly legit (at
> least as I understand it). So, assuming that there were a true open
> source mobile os (say mobile linux, meego perhaps), wouldn't, assuming
> carriers do the same post processing, be in the same boat as Android?
>   
As long as the customer is ignorant of what is happening to them. Now, some iPhone folks understand jailbreaking, if only to put their iPhone on a different cellular carrier. But we need to teach them more.
> Basically it seems like Google recognized that the carriers were never going to touch something GPLd
That's not true at all. The Linux in Android and the Linux running the cellular tower are still under the GPL, and have other GPL components on top of them. There is a Java environment in Android that isn't under the GPL and that's what is getting Google sued by Oracle, not anything GPL.

> Do you see a way around that or will carriers always be a roadblock to a true open source mobile os?
>   
I wish this were just an issue of whether mobile operating systems are open or not. It's an issue of the cellular carrier having too much control over the user. We need to regulate the carriers better than we are today, so that they are a data transport service and no more.

>> 3. That the result uses free software to lock users down in various ways,
>> making them slaves of their tools just as the iPhone does, exactly the
>> antithesis of Open Source.
>>     
> So in the end, license aside, the difference between the so-called
> open source and the obviously closed iOS for uses is nil?
>   
I think that so far we have failed to teach the consumer how important it is that they have full control over the path by which they receive information. This has been a problem in the U.S. before - first it was a handful of companies controlling radio and then TV stations, and thus those companies had too much influence over the vote and much else about people's lives. The internet was supposed to be a fix for that. Now we're backsliding, and we depend on publications like yours to bring this to the people.

> Part of Steve Jobs' remarks (which sort of inspired this piece)
> centered around trying redefine the iOS vs Android debate in terms of
> an integrated vs distributed model (rather than open vs closed), which
> actually seems fairly accurate given the end result for users. Would
> you agree with that characterization of differences the two?
>   
Steve is really addressing a different issue. Steve has ridden atop a period of consolidation in mobile devices, to achieve something like a monopoly for a time with one device over which Steve holds ultimate control. Having worked for Steve for 12 years, at Pixar, I'm loath to let him have that much influence over how people vote or lead their lives. But Steve knows full well that consolidation comes in swings, and that we're now entering another period of diversification. Steve's arguments about maintaining his total control of the system echo ATT's arguments in the '70s about why the U.S. telephone network had to remain under control of one company. Back then, the phone company said you couldn't have your own telephone devices, and sued Carterphone when they made one! They told us that they couldn't maintain the operation of the network if we had more control, and that our user experience would suffer. ATT's loss of the Carterphone suit and their eventual breakup ushered in the wireless age that we all benefit from now. Let's not let Steve, Google, and wireless carriers hold up the next revolution.

You're welcome, and do write if there's anything else I can help with.