great breakdown. I have been in many situations where it was open source software that really fit the best. When dealing with php/mysql based open source stuff I actually did go in and modify/fix things.
What I've generally found with open source software is that you have "tracts" where a group of people want a feature and implement it. This means that you have several features that are well done, but since none of those people cared about a couple bugs they don't specifically use, you still have those bugs. There's no incentive to fix them. I don't really know where I was going with this observation, but I've seen it several times.
When I was an IT administrator I found this exact scenario several times. Android is not for people who don't want to tinker. I'm usually fine with tinkering, but at some point I feel like I'm wasting my time.
I think you misunderstood my point, please allow me to clarify.
I wasn't saying that we should accept anything less than what is printed on the box. This would be wrong. Instead I mentioned that more complex systems inevitably can lead to bugs due to several factors. Heck, I even had to reboot my computer 2 times before I could get my bluetooth keyboard correctly connected to write this reply.
For solving those bugs and assuring the perfect end user experience, we are talking about two completely different approaches in what Android does or what iOS does.
1) implementation/quality control
For Android, the platform is open source. Any third party OEM manufacturer is free to develop a hardware system, install Android and sell it on the market. Is google to blame if the end users are unhappy? The answer is obviously no. Giving the OS as open source doesn't allow them to control every single piece of hardware that gets to run their code.
And developing a smartphone is not a simple process: there are dozens of critical aspects that need to be tested, fixed, and the whole process repeated a few times. But in this world, some are more interested in earning quick money than building something of good quality, and so, for some manufacturers the quality aspect gets of minor importance, resulting in end user frustration.
Besides the hardware, there are also bugs in the software. I get your point that open source means nothing for the regular user, but sometimes even for me, as an embedded software developer - I rarely vaste the time to fix something that should have worked out of the box - but this is only a tiny fragment of the big picture: open source platforms come with entire communities of developers working to fix and improve things. Sure it doesn't all happen in one day, but the result is things are progressing and evolving relativelly rapidly. You will NOT get this with iOS. You will NOT get a significant evolution factor with closed systems.
On the other hand, Apple controls the production better. The hardware is carefully designed and implemented, and so is the software. You will get a perfectly polished product that WILL do what is printed on the box.
2) fragmentation and software compatibility
Another issue causing the kind of problems you wrote about is the hardware fragmentation, that the hardware is done in multiple flavours by each of the third party manufacturers - running apps on a fragmented platform becomes problematic. iOS doesn't have this issue.
Fragmentation is not new, remember the many flavours of Symbian? It was a pain for a developer to make a software work on ALL.
Then there was also the Windows mobile, still with some fragmentation problems, but with better implementation guidelines given by Microsoft to OEM manufacturers.
And I'm sure there could be more bullet points / ideas to discuss. BUT, what to choose?
Probably this is a matter of personal choice. A quick answer might be that if you want something simple and robust, go for iOS, and if you are more interested in hacking/modding/changing, than Android (buggy or not) is what offers more tools for doing that.
And a quick story to conclude: before Android 2.0 came out, there was no official Bluetooth support. At that time you could only turn bluetooth on/off, but nothing more, BUT as the platform was open source and Android running on Linux, I was able to use the Linux BlueZ stack not only to use Bluetooth functions, but implement an entire HID client module, to connect a Bluetooth keyboard to my phone (this resulted in the Blueinput software being developed for Android). Can the same be done on iOS. No, but to use Bluetooth for anything at all, you need to enroll in their MFi program that costs close to 10k USD plus royalties. So... it really depends on what you want to do: Arduinos, Automatizations and various Hacks are out of the question for iOS at least when using Bluetooth.
But I'm not saying Android would be better. It's full of issues and there are times when you simply need to give up, both as an end user or as a developer. I'm just saying that Open source has certain advantages, that closed systems will never get. That's all. For the end users, like said above, it's just a matter of personal choice. And yes, doing what's written on the box can be an important personal criteria to choose for.
On my son's last birthday I bought him an iPAD mini and it worked good, ( I own 2 iphones as well) when it was time to buy a tablet for my wife, I thought why not try a Samsung Tablet with android on it.
So I went to costco & bought a 7" samsung tablet. I found that software was clunky APPs will get stuck sometimes, and tough screen became un responsive many time, I thought I live with them,
Then I signed up for google account to buy and App for my wife, It asked me if I want to make a new google account, I said yes, It made me a account but transactions never wnet though, saying am error has occurred. I called my bank to see if they declined the transaction on credit card, and figured out that they did not declien any but Google canceled transactions, then I called google and they told me it will be 2 days before I can buy a APP coz, I made a new google account,
I said screw it... I returned the Samsung, same evening, and bought an iPad mini, and was able to get it running in no time, without any issue,
So we're talking about quality here. Apple is a company very different from others in the sense that they own most of the development of a product. They work on the product behind closed doors and really pulish it untill it gets done well.
The bugs that some other manufacturers would let out aren't aloud at Apple.
This is why the cost for the products is higher. But yet, people love these products. People love things well done.
This is very close to a piece of art. Its a matter of time. If they would work enough time on a product even they could make it good, even with Android on it. But there's money to be made and a product under development can't be held for too long right?
I totally agree with the author. I still recall we made our first $50 Android tablet 3 years ago, and we thought we will sell tons of them to kids. It turned out we did sell bunch, but we also got lots of returns, exactly the same reasons that author talked about here. That's why we switched to vertical market, make customized tablets for dedicated applications. Now open source and fragmentation (or I should say many options on size and hardware) are features instead of drawbacks :). I am amazed by the varities of applications that our customers are using our tablet for: marketing, eduction, control panel, advertisment, you name it.
I, too, often spend too much time trying to get things working at home. (I am no EE but everyone -- like family and relatives -- thinks that i can figure things out because I work for EE Times. Yeah, they don't get that i am just a reporter.) Usually, when I succeed to get things working, it's probably because I am too stubborn and i don't like to give up.
That said, I too found myself dumbfounded when my tablet from that other company worked from day one with no tutorials.
My comment was specifically on point number 2 - which a lot of people raise as a "criticism" of Android.
I agree, if the device does not work as advertised or the hardware is defective, that's a problem. But that's nothing to do with my refutation of #2. But as for example, the bluetooth keyboard ont working, sure that's not good. But then on the other hand, I've found a number of esoteric and "out there" things (but highly useful things to me) that do just work that I would never have expected to work. Sometimes the reality in technologies like this is that you don't get to have everything (there is rarely a device that does _everythning_ you could possibly want) and you have to pick and choose what capabilities are most important and forego those that may be less important. But then that gets back to my point on #2 - With Android and it's "fragmentation" there is a greater chance of finding such a device that suits one's own particular desires. With Apple, if what you want is not one of the few options available, then you're just SOL. For example for me, a phone with a sceen <4in is a non-starter. Or a tablet >8in is a non-starter **. Apple is _starting_ to make progress in those directions, but am I going to wait until Apple gets around to what I want, or am I going to go to someone else that does?
An analogous summary might be: Legos provides for an infintie number of permutations and combinations, but nonetheless, there are some blocks that simply can't be snapped onto other blocks is some configurations. Is that the fault of Lego or of trying to snap together parts that weren't intended to be snapped together in that configuration?
So should we ban all those parts from Lego that don't snap together with all other Lego parts in all configurations and permutations? Or do we accept that those parts enrich the Lego experience even though we might be disappointed that some parts don't necesarily snap together in a way we hoped? If you ban those parts because there are some configuration that might not work, what do you gain? Is the "benefit" of never being _disappointed_ that a part doesn't fit together like you hoped worth the cost of never having the beneit of that part in _any_ configuration that might also be desireable? My answer is no. But if such _disappointment_ really gets one's knickers in such a twist, then maybe the sacrifice is worth it to not get one's knickers so entwisted. And for them, there's Apple.
** - this is not strictly true as I do own a 10.1 tablet in addition to my 7" tablet. But I use them differently - my 10.1" is "home use", my 7" is "mobile". 7" or 8" is _my_ ideal protable size, 10" is just too big for that (but great for home, and 7" is just too small for home use, hence why I have the 10"). But where "mobile" is part of the "definition" of a tablet, the standard size iPad just doesn't work for me. (Admittedly, the mini is probably a decent size, but then would that really exist in a world without Android tablet "fragmentation"?)
A Book For All Reasons Bernard Cole3 comments Robert Oshana's recent book "Software Engineering for Embedded Systems (Newnes/Elsevier)," written and edited with Mark Kraeling, is a 'book for all reasons.' At almost 1,200 pages, it ...