back
79 comments
Android is Open Source in that Google dumps the source code into the open periodically. It's not developed in the open.

Honeycomb's source was and never will be open.

This is way farther on the 'open' side of the spectrum than any other major mobile OS.

Is this, along with Android's open app marketplace, ability to install arbitrary third party software, and installability on any compatible device enough to warrant Google's marketing as 'open'?

I say yes.

> Honeycomb's source was and never will be open.

Honeycomb will be in the git repo since it is what ICS was developed from. The question is if it will be specifically tagged.

Do we have a term to distinguish between the two different models of open source? The two models being the "development in public" model (Chrome, Firefox, Rails, etc) and the "release finished code" model (Android, most GPL components of closed source software, etc).
Cathedral and Bazaar works here
I'm not quite sure. Chromium (the open-source end of Chrome) is very much a cathedral in the sense of product direction, but is developed in the open. I can't come up with something that has the opposite pairing though (it'd be kind of strange).

I'm all in favor of some pithy term for "source released under an open license but not developed in full view of the public."

How about "write-closed" vs. "write-open"? Or more simply, "read-only open source".
Shared Source is nice, or half-open source.

Or, "we take all the benefits, free workforce and goodwill of free software while retaining all control and money".

Most 'cathedral' products are developed at least somewhat in the open, and often do take external contributions.
There's peer production vs. firm production. More recently, the term organic open source has caught on in some circles.

http://en.wikipedia.org/wiki/Commons-based_peer_production

Chrome is in between. Most of the browser is developed in public, but large V8 features tend to be developed in secret (Crankshaft, in particular).
> The two models being the "development in public" model (Chrome, Firefox, Rails, etc) and the "release finished code" model (Android, most GPL components of closed source software, etc).

There is a spectrum here, not two distinct models of open source.

Projects like Python, Firefox, Linux (kernel), etc. are open source and developed in an open community manner. Decisions are made in the open, long-term plans are well-known, and anyone can participate.

Projects like Chromium are less open, some development is behind closed doors, the project is controlled by a single corporation, the decision making process is not transparent, etc.

Near the edge of the other side are projects like Android, which are basically developed in a closed way, then "dumped over the fence" when finished (which makes them open source at that stage).

I liked the term Shared Source for what Google are doing, though I was informed that Microsoft have already coined that for the stuff where they make the code public for review but not use.
periodically-dumped-source software? Hopefully someone can come up with something catchy.
Sincere / insincere.
Google's recalcitrance appears to stem from two issues: one is that Honeycomb is specifically designed for large-screen devices and Google is concerned that, if released, it would find its way onto unsuitable form factors; the other, hinted at by Google employees in the past, is that much of the code is a kludge unsuitable for publication.

I'm not sure why Google caught so much slack for keeping 3.0 closed source. I found these to be great reasons and instead of dealing with a bunch of HoneyComb/Android SUCKS reviews when someone put honeycomb on a small screen device google just weathered it out and released something with some quality.

That goes against the principle of open-source. The principle is that by releasing code to the public you will get contributions from others (an extra set of eyes) that will make the project overall better.

But to accept this principle to have to also accept that some people will take your code and use it in ways that you don't approve. The hope/belief is that the good will float to the top. If you don't accept this premise then you don't really have an open-source project.

I can't figure out why Android open sources its code, ever. They don't seem to care about contributions from the community, and they obviously don't want people using their code in ways they disapprove of. It seems that the major reason for open sourcing their code must be something else. What I keep coming back to is that it somehow protects them (in most cases) of patent violations.

I've asked this in the past: what is Andy Rubin's open-source credentials? What open-source projects has he been involved in during his long and successful career?

> They don't seem to care about contributions from the community

Google accepts a lot of patches from the community. Many of the major custom ROMs regularly submit patches. Things aren't perfect at the moment since all this infrastructure was hosted at kernel.org and is still down, so I can't link you directly to examples of public patch submissions and code review, unfortunately. But I can tell you they used Gerrit for that code review.

Because the name is "Android Open Source Project".

It's totally fine to develop closed source software! The problem is that if you market something that's actually closed as "open", you're being disingenuous.

Apple did the same thing with Darwin, but to their credit they started backing off on the "open source" marketing once it became clear that they were heading in that direction.

The Darwin source is still being released if you want it (following the periodic code dump model), it just doesn't get much attention. For most people, it doesn't really offer a compelling case over Linux or its *BSD cousins.
They got lambasted for not releasing Honeycomb because "open" is one of their largest marketing platforms and the reason many people use Android. I'm glad they're going to release ICS source at some point, but can anyone be sure they'll continue to publish code for future versions? That kind of uncertainty diminishes their claims of "open" greatly in my mind.

Also, a tiny nit about the headline - it's not open source until they actually release it. Who knows when that will be.

Fwiw, many is a very relative term there. Android phones are definitely mainstream. I'd say of all the people I know that have an android phone, less than 10% even know what "open source" means.
hinted at by Google employees in the past, is that much of the code is a kludge unsuitable for publication.

They could have used some help from the opensource community to clean up the kludge....but they don't take pushes from anyone not Google.

This just isn't true. I know for a fact JBQ has reviewed patches (and gotten relevant engineers to review things) that have made it into AOSP. The Android team does pre-push code review using Gerrit, and they often lack the personnel to review every change that comes in. As a result, patches sometimes (perhaps often?) wither on the vine before anyone can code review them.

Also: many potential contributors are scared off by the contributor license agreement required by AOSP. Patch contributions without the CLA can't even be reviewed.

As for not releasing honeycomb, look at releasing the kludged code from their perspective. They probably didn't want phones released from HC that wasn't ready for phone use, thus giving them a bad name when awful "Android Honeycomb Phones" hit the market.

Exactly. Honeycomb was something of a stopgap to catch up to iPad while Google went for its unified phone/tab ICS OS. Considering all the 1.6/2.1 tablets that were released this year that were just horrible, I can see why google went this route. The industry was fucking up tablets pretty badly and I can't imagine AOpen or Archos or whomever having access to a half-cooked Honeycomb source and pushing out yet another shitty product.

Instead we have gems like the Transformer, Galaxy Tab, Xoom, etc. Seems to me that google made the right move. Soon they'll all have access to ICS anyway. Lets see how badly these other companies fuck that up with their crapware, questionable UI changes, and cheesy hardware (I believe Archos or some other company is still selling resistive screens). Even if they do, we already have an established set of decent tablet products.

to be precise, contributing means giving your copyright away to Google. It means all you're doing belongs to Google, not to the community, or yourself.

Oddly it puts people off from contributing patches. Oddly!

I'm all for freely contributing to projects, but I will never assign my copyright to a corporation. A not-for-profit at least, but corporation, come on.

>As for not releasing honeycomb, look at releasing the kludged code from their perspective. They probably didn't want phones released from HC that wasn't ready for phone use, thus giving them a bad name when awful "Android Honeycomb Phones" hit the market.

Wasn't Honeycomb supposed to be a tablet-only OS? In which case, Google could have removed all cellular voice functionality, stated in the readme and release notes that this is intended for non-cellular phone devices only, and released it to the wild. Heck, they also could have refused to grant any usage of the Android trademarks to any manufacturer that used 3.1 source in a phone.

> hinted at by Google employees in the past, is that much of the code is a kludge unsuitable for publication.

Sounds like their were embarassed about the quality of their code.

It could also be that it takes a very large amount of time to check and verify what can be released as open source code. Reorganizing the code so that proprietary drivers and internal-only APIs are abstracted out can take a very very long time. Even if nothing has to change, the time spent checking for these things was probably better spent working on Ice Cream Sandwich.
They're fine reasons, I just think it's lame to tout how "open" they are when in practice, it's more like "open when we think it's a good idea".
According to this[1] data Honeycomb is <2% of used Android versions. With the versions that 98% of the devices run being open I'd say it's a bit more than just touting about it..

[1] http://developer.android.com/resources/dashboard/platform-ve...

Something has to figure out that a product "IS" not open source AS LONG AS THE SOURCE IS NOT RELEASED. So no, right now, ICS is NOT open-source.

It will be the day they release the source.

Being open-source is not a design attribute. It's a process.

"Although the Android 4.0 Ice Cream Sandwich software development kit has been released, the source code is not yet out."

I believe this is called "closed source." When I go to http://source.android.com/, the latest release is Android 2.3 ("Gingerbread").

Am I missing a repository somewhere, or is Google "happy claiming the kudos and moral high ground that comes with OSS without really delivering on it", as it's put later in this thread?

(Edited to be less inflammatory)

There's a difference between "making shit up" and pre-announcing.

It's not unreasonable for them to hold back the source code until the first phone implementing the phone (the Galaxy Nexus) is available next month.

It's not "unexpected" or "uncommon", maybe. I think it's entirely unreasonable for an entity calling itself an "open source project" to withhold code under development from the public. There's no project here. But it's still better than we got from Honeycomb (or Apple, or MS), so I guess beggars can't be choosers.
I agree there's a difference.

"Pre-announcing" suggests that the announcement will be followed by code release. In the case of 3.0, I think the first devices shipped back in May-- that's about 5 months ago. With that history, this seems more like "making shit up" to me.

The headline is off. The linked announcement by Dan Morril said the source will be released after the devices are. So it should be future tense.

But neither is it closed source: there's been no release at all yet, so if you need a term, use "vaporware".

Given that they've demo-ed it at the launch of a handset and that there are videos of it running I think vaporware is both inaccurate and needlessly harsh.

It's an announcement of a future event. If we're calling this vaporware are you also referring to Windows 8 as vaporware?

I see your point about vaporware, but I think that term generally refers to software that will likely never ship. I don't think Google will fail to ship 4.0.

Right now, the source exists, and I can't get it. I think it's pretty straightforward to call that closed source.

If the code is unfit for others to read why is it being shipped in production devices?
Because the quality of the source code and the quality of the resultant binaries are two completely different things.
The source code is used to produce the "resultant binaries" so unless you have a very strange definition of "quality" the OP has a very valid question.
because Google felt they had to release something to stop manufacturers shoehorning 2.2 into tablets and making thelm look bad.
Because the industry norm for consumer gadgets is short product cycles, with the production of terrible quality code that doesn't see much maintenance after the release. Most users won't notice.

Even a "quality" product like the iPhone was shipped with everything running as root and a mess in the filesystem (and that's for a platform that has been maintained since).

A fine question
Sounds to me like a complete open sourced code is going to come to a decision when Google acquires Mototola Mobility... Will that be then end or a tweaked version for external developers?
That is the source code for the open source stuff that Apple uses in their product, it is not the full OS itself.