Based on Tom Callaway’s “Fail Scale” and inspired by a recent tweet by Ryan Rix I decided to measure just how much Fail does Android have in its project.
Size
- This doesn’t count for insanely huge projects like Android, Gnome, KDE or the Linux Kernel.
Source Control
- There is a publicly available source control.
- There is a web viewer for it.
- There is documentation on how to use it for new users.
- They use git for source control.
- They made this open source script called “repo” to sync all individual git repositories.
Building From Source
- There is documentation on how to build from source.
- The source is pre-configured depending on the device. You can make your own make files.
- The source builds:
- using GNU Make.
- It also requires third-party proprietary build tools (Ora-Sun’s JDK) [ +50 points of FAIL ]
- As of AOSP 2.3, it requires 64bit packages to build. (CyanogenMod patches this though)
Bundling
- The source only comes with other code projects that it depends on. (Android depends on a lot of parts.)
- If your source code cannot be built without first building the bundled code bits. (Sure, there’s build orders. )
- If you have modified those other bundled code bits [ +40 points of FAIL ] (SQLite comes to mind)
Libraries
- I’m not entirely sure how to count these. Android builds its own libraries, but I’m not sure if they’re static or not.
System Install
- The code has “mka bacon” [ -20 points of FAIL ] (Okay, only CyanogenMod does this
)
Code Oddities
- No code oddities on Android afaik.
Communication
- The project announces releases on a mailing list.
- The project does have a bug tracker.
- The project does have a website.
Releases
- The project does sanely versioned releases (Major, Minor)
- The project’s releases have tasty codenames [-10 points of FAIL]
- The project does releases. (You can just grab from a git branch)
- Your releases are only in .zip format [ +5 points of FAIL ] (At least for OTA Upgrades. Should this even count? )
History
- Android was founded in 2003. As far as I know, the first code drop happened in 2008.
- 3-5 years [ +20 points of FAIL ]
Licensing
- The code does have per-file licensing
- The code does include a copy of the license text.
Documentation
- The code does have a changelog
- The code does have documentation
- The website does have any documentation
FAIL METER: 85 Points
- 0 points of FAIL: Perfect! All signs point to success!
- 5-25 points of FAIL: You’re probably doing okay, but you could be better.
- 30-60 points of FAIL: Babies cry when your code is downloaded
- 65-90 points of FAIL: Kittens die when your code is downloaded
- 95-130 points of FAIL: HONK HONK. THE FAILBOAT HAS ARRIVED!
- 135+ points of FAIL: So much fail, your code should have its own reality TV show.
Update: DrMacinyasha pointed out a couple of Fails in Android that I missed. Christoph also pointed something that it does ‘release’ code, though not in the usual way. Hmm.
How about the insanely restricting licensing? http://thisismynext.com/2011/05/12/google-android-skyhook-lawsuit-motorola-samsung/
«Samsung’s amended license prohibits it from doing anything “that may cause or result in the fragmentation of Android,” including creating any SDKs that are based on Android or assisting any third parties in developing an SDK based on Android. What’s more, Samsung’s agreement also requires that the company only distribute Google-approved Android hardware and only distribute software on Google-approved devices.»
That’s only *if* you want to use Google’s proprietary bits, like the Android Market or Gmail and GMaps.
Amazon is about to Fork Android anyway, and with its own AppStore, vendors will have different rules, depending on Amazon’s ambitions and goals.
Correct me if I am wrong, but Android *does* releases. Things are tagged in the git repos and you can download, so why do you claim there are no releases?
Well, I think by ‘releases’ Spot originally meant “downloadable tarballs of the source code”. There is no “downloadable tarball for Gingerbread” (Because the tarball would measure several GB). There are .zip files for the OTA upgrades for certain AOSP phones though. I’m not sure what to do in this bullet point.
Edit: Well, I guess you’re right. By definition, Android does do Code Releases, even if not in a “Tarball”, the git branches are tagged properly and all.
Meh. I might be naive, but as long as Android is an Operating System before anything else, by “Release” I mean “an installable medium or method for an end-user to install, upgrade or repair such an OS on a compatible device”.
OTOH, http://en.wikipedia.org/wiki/Android_%28operating_system%29 says:
“(3.0 is currently still closed source)”.
I am certainly biased, as I *hate* Google slightly more than I hate Microsoft (but less than I hate Apple), but I don’t see by which standards does Android qualify as FLOSS, as long as it makes it difficult for the layman to get it and to make use of it and — regardless of what bits of it — it can impose ridiculous licensing to hardware manufacturers.
I don’t see any Android-powered phone as giving the user any more freedom than a phone powered by a closed-source system. (When Windows Phone 8 will be released, I’ll buy such a phone. Currently, *all* smartphones are dumb like shit, and this is why I don’t own any! I rely on Java and Snaptu to add functionality to my simple phone…)
I explicitly mentioned Gingerbread (2.3) and linked to 2.3 pages because Honeycomb isn’t ‘kosher’ yet.
I hate Apple more than I hate Microsoft, but less than I hate Oracle and I hate Sony the most. To each his own.
You haven’t seen ROMs like CyanogenMod? It’s based on Android’s source code, but spliced with a ton ‘goodies’ on it. There’s no way anyone could make such a “ROM” for WinMo or iOS.
As long as you have to root your phone, this is not freedom, no matter it’s running Android.
(Hating SONY more than Apple is not reasonable IMHO. I know I’ll rot in hell, but I wish Steve Jobs was dead by now.)
Considering my phones are the G1 and the Nexus One, both of which are “developer phones” and come unlocked and rooting is supported by the vendor, I wouldn’t say I’m not “free”.
The Nook Tablet I have is a whole other topic. I only purchased because of how easily rooted it is
“Developer phones” is a different matter. “Consumer products” is all that matter to the layman.