I'm a big fan of smartphones, I absolutely love them. I own and use a HTC 7 Mozart running Windows Phone 7 and it's changed the way I do things. Being a fairly technical savy person though, you might expect that I would have purchased an Android phone which allows you to customise the phone to your heart's content OR an iPhone because of the compatibility and popularity of the devices. I'm going to discuss why I haven't chosen either of those systems and instead picked the more limited and underdog Windows Phone 7 platform and why I simply cannot recommend Android phones to regular consumers. I'm probably going to get a lot of disagreement from Android users, but I stand by my claims.
Updates & Fragmentation
This is probably the biggest problem with platform. Android is created by Google and then released to the public with the intention of "here's the software, put it on any device you can and customise it however you wish". It sounds great, a very flexible operating system that's free and can be put on nearly anything by anyone. So the phone manufacturers and mobile carriers decide to make a new phone based on the Android software, so they take a version of Android (say 2.1) and make changes needed to have it work correctly on the phone, then add a bunch of extra software and skins onto the device to brand it as a HTC or LG or Motorola phone, then the mobile phone carriers to the same to make the devices work on their network as well as brand it with some of their own services. So the version of Android you receive on your phone can be very different from the one Google originally released. The problem is though, when it comes to updating. Google may release their next update (say Android 2.2) to the public and say "ok, phone manufacturers, here's the update, make it work on your phones". This means the phone manufacturers and phone carriers have to do the customisation and testing all over again for each update, which they will then release for free. So because this is expensive for manufacturers and carriers and also provides a conflict of interest (why would we want to upgrade the phone for free when we can sell them a new phone) it often takes a long time to update the phones (often 2 versions behind) or in the worst case scenario, it NEVER gets updated. The further behind in versions you get from the current one, the more apps become incompatible and you have a situation where one Android phone cannot do things that another Android phone can. This is called fragmentation and it's Android's biggest problem. What makes it even worse is that, you can still buy phones today that come with outdated versions, it's not just limited to people who purchased phones when the version it came with was the current one, it can apply to people who purchase brand new phones!
The two main responses I get to this issue are either "I don't care, I don't need to keep fully up to date, I don't need the latest version, I'm happy with what I've got" or "well, just root your phone and flash the firmware with an up to date version someone has created for your device". I refute both of those claims as reasonable responses. I'll deal with the second one first. This is generally the response I get from technical friends who have Android devices. Rooting the phone (the process of hacking it with a custom version of Android that wasn't created by the phone manufacturer) is fine for people who know a lot about technology, but for the average phone consumer, telling someone to "root their phone" will get you strange looks and also is a completely unreasonable thing to expect from them. They've purchased a phone to use as an appliance, not so they can hack the underlying software that makes it work, not to mention this most likely voids the warranty. I'm not going to recommend they perform a process which could brick their phone or make it unreliable. I personally think it's great to have a Windows or Linux on a PC where you can do this type of thing but even on my own phone, I can't see myself wanting to do this to my phone. I want my phone to be reliable and stable for when I need it, not have an issue with a custom boot-loader or skin I put on it thanks to rooting my phone. As I mentioned above, the other reason I get is that they're happy with their current version of Android and don't see a need to upgrade even if they could. The main issue I have against this is, Android is a complex and connected operating system. Due to the extreme openness it has, it is very susceptible to security holes which Google does patch in Android updates. If you can't or don't get these updates, then you leave your phone open to malware.
The Malware Problem
The other serious problem I have with the Android operating system on a phone is the extreme openness of operating system, but more specifically the Marketplace. This week (First week of March 2011) 58 applications had to be pulled from the Marketplace because they were malware. These malware apps made it onto 50,000 phones before they were pulled by Google. While I have a fundamental problem with Apple's draconian policing of the App Store (it's this issue and the general culture the company produces that actually stops be from buying an iPhone, the device itself is well built and functional), Android's complete lack of moderation is a real problem. Combine this with the open nature and "change anything" attitude of the operating system (Windows Phone & iOS are very restricted and applications are sandboxed and have a limited API to prevent them changing anything on the phone outside their application) means that malware can very easily make it into the Marketplace and therefore onto phones. These pieces of malware once installed from the Marketplace, rooted the phone, stole user data from the phone and opened backdoors so that other malware could install itself onto the phone if it wanted to. This type of thing should not be allowed to occur on your phone and definitely not so easily. I know malware is a common part of using a PC and we run anti-virus software on a computer to prevent us from these type of attacks and that Android has anti-virus software you can download from Lookout but you shouldn't have to run anti-virus software on your phone. It's a very different situation to a PC, on a phone you have limited processing resources and limited battery power, so running an anti-virus in the background the whole time is unreasonable. The other thing which is different to a PC is that, these apps are in a Marketplace. They're not apps you've randomly finding on the internet, they're apps in the official Marketplace. I use a supermarket metaphor, if you go to a supermarket to buy a bag of coconut, you're going to expect coconut and if you got a bag of sawdust, then you'd think something is seriously wrong, while if you were to buy a bag of coconut from a back alley and got a back of sawdust, then you'd probably expect that. The Android Marketplace is like the supermarket, you should be able to shop there with confidence that you will get what you expect as opposed to downloading apps from the internet where you have to be a lot more careful. So this is the other major issue I have with the Android operating system, security & trust is not a big thought and can never be a strong point while the system is so open and unmoderated.
Custom Shells & A Standard UI
The last problem, which is nowhere near as significant as the first two, but still resides in my mind is that there aren't many standards when it comes to the UI of the phone. As I mentioned before, each manufacturer can customise the phone however they wish and to differentiate themselves from their competitors, they often replace the standard Android UI with a custom shell. Another reason they often put a custom shell on the phone is to replace Android's geeky user interface and replace it with a simpler one. This isn't always successful though, because if you dig down far enough, you get back to the Android UI and all the technical things about it, such as task managers etc. The custom shells mean that if you move from one Android phone to another Android phone from a different manufacturer, you probably will have to relearn a large part of how to use it because everything will be in a different place. This is probably why Linux hasn't taken off on PCs. Each Linux distro operates and functions differently to the next one, so there aren't really any standards you can learn. The advantage someone has with an iPhone is they can give it to another iPhone user and it will work exactly the same way, no need to relearn it. This is an easy thing to accomplish when the product is made my only one manufacturer. The same applies to Windows Phone 7 even though it's made by several different manufacturers, the basic UI stays the same on every phone, so moving from one phone to the other doesn't require you to relearn anything. The other advantage is that all the UI is built with simplicity in mind, you're unlikely to dig down and find technical details because everything has been designed for simplicity, not just the first few levels of UI. Android have both these problems and in the long run, I believe it could be problematic to them. They won't be as big an issue as the first two fragmentationand malware issues, which are serious, but they could be another thorn in Android's side.
So to sum up this editorial, I think I should explain why I own a Windows Phone over an Android or iPhone. Windows Phone 7 is basically a mix between Android and iOS. The big advantage Android has is that it's available on lots of different phones with lots of different hardware choices. Windows Phone 7 phones can have different handset designs and features like Android but all have the same internal specifications (plus a few buttons in the same place) and must not put a custom shell over the default UI which means the operating system needs very little customising before it can go on a device. This means that an update will be able to go to all devices and all Windows Phone 7 devices will be able to do the same things and also work the same way. There has been problems with the first Windows Phone update recently but it's teething problems and hopefully this first pre-update and it's issues will mean that future updates go very smoothly for everyone. The fundamental process though is a lot better than Android's though, Windows Phone can make improves to make the updates more smooth and reliable, but Google would have to architectAndroid to achieve a similar update model at this point, which is unlikely. There is also a deal with the carriers that they may not block an update for testing for more than one update cycle. This means that although updates can be blocked for testing (there won't need to be as much testing as Android though, because less changes are made to the device on each update) for one update cycle, they must be unblocked by the time the next update comes out, so carriers could never permanently block updates to your phone. This is much more like the successful iPhone updating model where every current iPhone user should get the next update. Obviously phones become out of date after a few years and are unable to run future versions, but by the time that happens, the phone won't have been in stores for several years, unlike current Android phones in stores stuck on 2.1. The Windows Phone Marketplace like the iOS App Store is moderated, but unlike Apple, the rules are more reasonable. This is the best of both worlds, you keep poorly written and malicious apps out of the store, but developers don't have to worry about breaking unreasonable rules or getting kicked out of the store for no explanation.
So next time you see an Android device on the shelf at a store, think twice about purchasing it. You could end up with a phone which is out of date the moment you bring it out of the box and a phone you could accidentally install a virus on which can steal personal data. I'd recommend an iPhone or Windows Phone if you're new to the smartphone market or someone who isn't super technical and just wants their new smartphone to work and know they will be safe. If you're really into Android because you're technically savy and like the flexibility, then go ahead and use it, but remember to tread with caution because of the malware risks and remember this article when recommending a smartphone to average people and think about just recommending and iPhone or Windows Phone as they don't have the same knowledge as you when it comes to keeping the phone stable and secure.
If you have an Android device & want to check if you downloaded a malware app from the Marketplace, then check the list of the 50 apps pulled by Google from the Marketplace here: http://blog.mylookout.com/2011/03/security-alert-malware-found-in-official-android-market-droiddream/.