Google’s CEO, Larry Page, has just published a letter titled “2012 Update from the CEO“. It’s a state of the union-sort of thing, mostly filled with the usual stuff of how great Google supposedly is (we’ll decide that for ourselves, why thank you). There’s one bit in it, though, that caught my eye – something that puts Android’s supposed fragmentation issues in a rather different light.
As you all know, Google was well aware of what mobile would do to the industry, even before the iPhone was being developed. Google acquired Android in 2005, but a year earlier, Google was already talking to Andy Rubin about the whole thing. After detailing how good Android is (we’ll decide that for ourselves, why thank you), Page explains how it wasn’t always that easy.
“It wasn’t always that easy,” he recollects, “I remember first meeting Andy Rubin, the creator of Android, back in 2004. At the time, developing apps for mobile devices was incredibly painful. We had a closet full of over 100 phones, and we were building our software pretty much one device at a time. Andy believed that aligning standards around an open source operating system would drive innovation across the mobile industry. At the time, most people thought he was nuts.”
Today, the situation is entirely different – and for the better.
“Fast forward to today. Android is on fire, and the pace of mobile innovation has never been greater. Over 850000 devices are activated daily through a network of 55 manufacturers and more than 300 carriers,” Page adds, “Android is a tremendous example of the power of partnership, and it just gets better with each version. The latest update, Ice Cream Sandwich, has a beautiful interface that adapts to the form of the device. Whether it’s on a phone or tablet, the software works seamlessly.”
Looking at Android from a more historical perspective changes the game somewhat. I’ve been pretty clear about how I believe Android’s biggest threat is its fragmentation (version-wise, not device-wise), leading to craziness like how only a small percentage of Android users being on Ice Cream Sandwich, and even then, many of those are using some sort of manbearpig version of ICS (thank god for CyanogenMod 9 on my SII). Yes, compared to the cleanliness of iOS, it’s pretty pathetic.
However, if you compare it to the mobile industry of yore, Android is not just an improvement – it’s a monumental, perhaps even revolutionary improvement. Back in the day, each mobile phone was utterly unique, making it very hard to develop for them. Thanks to Android, we’ve been able to retain the wonders and joys of a highly diversified hardware ecosystem, and yet still retain a rather workable and mostly acceptable common software layer.
Supporting the wide variety of Android hardware might be harder than supporting the few devices iOS runs on, but it’s still a hell of a lot better than the way the mobile industry used to work. Android has a lot of weaknesses, but when placed in the proper historical context, it’s still a massive leap forward.
I imagine when Libreoffice support hit and the Chrome merge is complete it will start to become a laptop/desktop force as well.
You think so? It’s an incredibly limited all-purpose OS. Then again, Windows 8 doesn’t seem to be much better.
Most people don’t WANT a “full featured OS,” they want an office suite, a browser, media, email, games, and fart buttons. The office suite is the only part of that list currently lacking on Android.
You’re wrong. People want the ability to do whatever they need to do at the moment, and everything else to get out of the way. Android and iOS are good at the second part — things do get out of the way. Almost as if they weren’t there, which they often aren’t. With iOS and Android, something as simple as copying and pasting a string of text from the browser to the office suite is a chore, due to the fullscreen approach and lousy application management.
For many of the niggling problems, the answer seems to be: ‘There’s an app for that!’ The real question is: why the fuck would you need an app for that?! And the fact remains that Android, as a desktop/laptop OS, isn’t close to the usability of a regular Linux distro like Ubuntu.
All Android did was get itself installed everywhere, on everything.
iOS has had the same effect, essentially, because of the iPhone having crowded out most other smartphones. You develop for iOS and you have incredible reach.
The solution was and is a unified ecosystem. Android did it by bringing their frameworks to a lot of devices, iOS did it by having one supremely popular device.
Openness really didn’t have much to do for it, and in fact, the run-of-the-mill app developer on Android doesn’t really interface with any of the really low levels of the Operating System, in so far as Linux could be swapped out as the Kernel tomorrow, and App developers would be none the wiser.
Driver wise, things are still a mess, but starting to get better with at least some of the Android Kernel changes getting back into the Linux kernel proper, but its still a complete clusterfuck. Graphics drivers are still binary blobs too, and anything else is so Android specific that there’s little to no benefit to Linux as a whole.
So where do open standards come into play here, other than Google paying lip service? I find it laughable how free software is piggybacked on by these corrupt, greedy, corporations, yet people still pretend that their principals are still in tact.
I agree with some of what you say.
I have been baking my own rom’s for Snapdragon (HTC Desire/Nexus One and HTC Desire HD). It’s only in the last 4-5 months that places like Code Aurora have really started to blossom. On my older 2.3 based rom’s they would max out at around 30-40fps using the crummy vendor (HTC) supplied drivers.. now on the same hardware with ICS 62-70fps depending on the test in the same software.. that’s a HUGE improvement. My rom is now very fluid in it’s rendering.. there are very few apps that are not smooth.. not bad for 2-3 year old phone. (note there is still a big difference between the Desire/Nexus One and DesireHD in terms of graphics performance). Both are dramatically smoother than anything HTC have brought to market.
I am keen to see if what the snapdragon developers keep to their statements about open source.. that could dramatically change the market.
Edited 2012-04-06 00:07 UTC
I had hoped so, non blob drivers make things like custom ROMs easier but it seems Qualcomm has already walked those statements back.
Mostly agree. Compatibility of software across devices is not open standards, it’s just an operating system doing its job. It’s sad that people can get excited over this, or claim that it is impossible as a defense to OSs that run on half a dozen overpriced slabs (iOS, WP7…). Heck, there’s hardly anything open or standard about Windows NT, and it could still likely do the same job equally well with a suitable shell on top of it.
However, I don’t see how this hurts the principles of free software as a whole. Nothing about Android belittles, say, the work done by the FSF on binutils and GCC, or other major successes of free software. It is just an example of GPLv2 licensing gone wrong by hardware locking (or “tivoization”), something which GPLv3 was initially designed to prevent before Linux devs started messing around with it.
Edited 2012-04-06 05:10 UTC
Don’t know why you got voted down. I completely agree with you in retrospect, and I was probably a little too harsh.
Open was used in three different contexts.
“… openness and investment …” is mostly about a collaborative approach between vendors. Collaborations can happen between businesses and takes many forms. This includes open source, standards bodies, and agreements between companies. This is probably the biggest reason why the cellular market isn’t anywhere near as fragmented today as it was 5 years ago.
“… open ecosystem …” is likely a reference to the ability of third parties to extend the system. Android accepts contributions for a multitude of sources and places relatively few restrictions on the types of contributions. This is most evident in how apps are developed and deployed. Of course device developers have much greater freedom in developing and deploying their software, which makes it even more appealing to them. This is probably the biggest reason why Android is accepted by developers.
“… open source …” played a role, albeit a smaller one. It gave device developers the ability to design their own hardware without having to reinvent the kernel or depending upon what a third party OS developer supports (which would make it harder to differentiate their devices). Of course, it also provides them with access to an excellent toolchain that they don’t have to reinvent.
Yes, you make it sound like it was such an easy achievement that you could do it tomorrow with two hands tied behind your back.
And openness isn’t limited to a “developer on Android doesn’t really interface with any of the really low levels of the Operating System”. In the olden days, you had to interface with the low levels and that resulted in you having to get x+y development kits from x+y vendors.
Considering that Android was released when it was just the iPhone, somebody was going to become dominant by default.
Carriers were looking for an iPhone-like OS and Android fit the bill perfectly. It was a perfect storm.
It had absolutely nothing to do with any kind of superiority, or what have you. It was simply great timing and great coordination with operators. They catered completely to OEMs and UX suffered significantly for it.
My point was that the openness is completely transparent to the user, there is no perceptible difference. So to that end, it’s difficult for me to attribute openness as a magic success factor.
This doesn’t explain the fact that even outside of the US – where carriers’ influence is limited and most people buy phones at third party retailers, mixing and matching phones/carriers/plans – Android is growing just as fast.
It just doesn’t add up.
OEMs are still king, and while I can’t speak for the situation overseas as I don’t really know, that’d be my guess as to why Android has been the smashing success.
I mean, Google made the conscious choice to go for reach over quality. Maybe they wouldn’t call it quality, but flexibility if you will. They are extremely flexible, you can turn Android into almost whatever you want, on whatever hardware you’d like.
So its a trade off, but to say they fought tooth and nail for their success in any kind of desperate capacity that other mobile OSes are trying to do now, is I think a little much. They kinda accidently fell into success, and are doing a great job at keeping their momentum.
Even if we remove IPhone from the picture (in most places outside handful of western countries it’s still a niche, luxry product that common people doesn’t care about) Android has delivered a major breakthrough in terms of touch UI compared to competition (Symbian, WinCE and featurephones). Before it smartphones were strictly highly priced business devices that compensated poor ui with enterprise integration. Soon after that the price race started and (along with Samsung Ace and HTC Wildfire and Xperia X8) Android has brought the smartphone to the masses.
Edited 2012-04-06 15:18 UTC
That is right. And if Google did not create the Open Handset Alliance there would be no Android adoption and OEMs would not push it.
It’s not single party operation, like the language in your posts seems to suggest.
A) All great products have a good measure of luck associated with their creation and adoption. There is no single one that did not rely on luck to some degree.
B) And now Google is pushing it even farther. It’s not like Google and other members of OHA just kicked Android off the top of the mountain to roll down at it’s own speed.
A lot of people buy smartphones thanks to carrier subsidized plans here (Italy).
Edited 2012-04-06 18:07 UTC
Those also include iPhone starting at €0.
Provided that your monthly phone bill goes above €60 and that you stay at the same carrier for 24 months ?
Quickly parsing the website of Orange France, the historical reseller of Apple stuff here, you can “buy” a slightly outdated iPhone 4 for €49, as long as you take it with a plan costing €66 a month for 24 months. Which means that over the course of your contract, you pay your carrier €49+1584=1633.
Conversely, if you take it with a more reasonable phone plan at the same carrier, it’s more like €379+477.6=856.6 for the same 24 months.
And if you choose to go to the new French carrier, who explicitly separates phone billing and phone plans, you pay €527.07+479.76=1006.83 for something which includes a phone plan that is significantly more high-end than the first one I mentioned. Goes to show why plans with a phone included in the contract should be outlawed.
It is almost always better to accept the fact that the things you buy cost a price and to choose a plan (the part which is the most expensive and the most useful) before choosing a phone, rather than to fall for the trap of carrier gambling.
Edited 2012-04-07 07:40 UTC
for most of the markets outside the U.S price is the major driving factor IMHO seeing as some of the largest growth is being seen in the developing countries where the choice for a smart phone boils down to a sub 100 dollar phone potentially running the latest version of Android or a iOS device that costs easily three times the price.
Two things drive android (1) the amount of device choice (there is more than one model) and (2) price, when you can buy an android 2.x device on a pay as you go contract for under £100 (under £50 for some models) and own the device outright. Once momentum begins, your friends all have device X, that can really drive the take-up.
The kernel has nothing to do with openness and nor would it have anything to do with app developers on any platform.
If you’re encouraging app developers to interface with the kernel, then there is something deeply wrong with your OS design – apps interface with framework APIs / ABIs that then often interface with a lower level set of ABIs which then communicate with the kernel. There’s a whole stack of software that sits between the kernel and the 3rd party app.
What you’ve done is fallen into the common trap of over emphasising the significance of the kernel in the overall design of an OS.
Isn’t that exactly what he was saying?
You’ve fallen into the trap of ..completely missing the entire point of my post.
I mostly agree with you, but thanks to Linux underpinings and the mindshare it has, hacking (I mean hacking, not cracking) phones (or mobile devices for that matter) have never been as easy and powerfull as it is today.
XDA has really flourished. The simple fact that you can get (mostly) working linux kernel for your device opens lots of possibilities. One of those is hackers showing what could be squeezed of the HW if manufacturer’s sw teams had more focus.
As much as not the same as full GNU stack developement process (with distros and such) I find preety much the same qualities in XDA community that are there in other full OSS projects.
Edited 2012-04-06 10:09 UTC
Sure thing, I will give you that. It’s certainly fun to tinker with it and the folks at XDA are amazing.
I’m not an opponent of this by any means, in fact, I wish drivers were more open so that full AOSP based ROMs would be easier to develop.
Another thing was that Android was the only proper alternative to iOS.
Symbian was at the the time had too braindead (Symbian C++) that no one would use it for fun programming. The Open C/C++ APIs only helped to make life a little easier.
So every developer that wanted to develop apps and could not target iOS, Android was the best OS to target for.
<a hrf=”
  vs
<a href=
That subtle error is enough to drive most people nutty.
Edited 2012-04-06 00:24 UTC
Andy’s openass:
“If Sun doesn’t want to work with us, we have two options: 1) Abandon our work and adopt MSFT CLR VM and C# language – or – 2) Do Java anyway and defend our decision, perhaps making enemies along the way”
I still do not get why they decided to back the Java model and think upgrading from Java ME was such a high priority… I do not dislike Java, but to anyone doing the Java-JNI-Native dance… this is not fun… The more confusing when other Java based approaches like JNA are around and .NET already showed how you could do native code support in a more sane way…. and they would have avoided the Oracle lawsuit too…
Simple failure to think outside the box? At the time these guys started developing Android, java would have been the language of choice for mobile applications (much bigger share than Windows CE for example), so maybe they just wanted to provide a path of least resistance for developers…
JNI was not supported in mobile, so I don’t think it needed to be part of the upgrade path.
Remember Andy Rubin also founded Danger the maker of the dangertop/sidekick. Which had an app store and was written in Java. He’d already had success with the ecosystem, it makes sense he’d do it again. And at the time in history Sun was preaching and moving to open source everywhere with all of their products. Android & the rest of the world didn’t see the oracle acquisition coming at that point.
Also .NET at the time wasn’t much particularly brilliant.
They probably couldn’t. The VM patents would still apply, as they apply to Microsoft’s own VM.
I don’t know why all the people are crying so much about developing for that.
The API was mostly consistent and all you had to care about was specific manuf. implementation bugs, something that is in no mater gone in the Android story.
Besides, those bugs spanned specific manufs. JVM generations that allowed clustering devices and getting testing manageable.
What was really wrong with J2ME was flawed signing architecture and limited abilities that blocked HW innovation. The universal UI model that Sun has conceived hasn’t really worked in practice (esp. evident in case of touch phones) but that was eventually fixed by Sun new next gen UI framework that started to gain traction just before Android.
All in all, I don’t see technical reasons Android cound’t have subsumed J2ME.
Too bad Android (stock ICS) and iOS are both freaking usability disasters.
-Multitasking is a joke.
-Using multitouch gestures on a tiny screen is a joke.
-Gestures are undiscoverable an inconsistently available.
-Gestures are accidentally triggable and not undoable.
-Preference to grids of cryptic icons instead of menus with words.
-Using sliders as check boxes and doing it poorly and inconsistently.
-etc.
Special thanks to Samsung for designing Galaxy S2 so that it feels like a thin bar of oiled soap and has a front that is touch sensitive practically everywhere.
Exactly. Some people don’t want to admit it, but while ICS is a lot better, it’s not enough yet.
The OS still has a very, very big apps problem. I really don’t care if the App Store has 100 billion apps, the discoverability and quality of those apps are astonishingly low. The amount of pure unfiltered crap on the Marketplace is unreal.
Performance is still(still!?) terrible on unbelievable hardware. There is just no excuse for the lack of optimization.
I think the problem stems from the fact that too much is put into the hands of OEMs which are not really software companies. I don’t care how much you try Samsung, TouchWiz isn’t going to fucking work. Your software engineer sucks, stick to making mobile phone chips.
This leads to buggy drivers, broken updates, and an overall shoddy experience. It feels like the whole thing is taped together.
Yes, it’s astonishing that owners of best search engine created a market that sucks so much about finding apps.
I kind of agree as well, I don’t know why suitability of touch screen input paradigm for absolutely everyone is so much taken for granted.
The absolute majority of cell phone users still rock keyboard based candybars and is happy with them.
It is not an open OS so it can’t be that good.