A healthy debate from more than two decades ago shows how we should approach the Android vs iOS vs others debate.
Reading about the famous Tanenbaum-Torvalds debate regarding the micro (Minix) vs. monolithic (Linux) operating system kernel architectures reminded me of the Apple/iOS and Android supporters of today. In my experience Windows Phone users tend to get along with their life instead, but it’s also fair to say that the sub 4% global market share leads to a less representative sample.
A very relevant quote from the Wikipedia page:
Despite this debate, Torvalds and Tanenbaum appear to be on good speaking terms; Torvalds wants it understood that he holds no animosity towards Tanenbaum, and Tanenbaum underlines that disagreements about ideas or technical issues should not be interpreted as personal feuds.
While the less technical mobile users’ sometimes borderline fanatic following of the iDevices or Android ecosystems is easier to digest (a variation of “my team/tribe is better than yours”), I find it more annoying amongst software engineers.
In my view, even if you aren’t a mobile engineer, nowadays mobile is a major player in the software industry. Just as each software engineer should have a clear understanding of the pros and cons of the major software execution environments, mobile should be part of that too.
We all know what a particular desktop or server operating system is good for. The same goes for web browsers. But from what I’ve usually seen, when we get to mobile, things get personal. Quotes like “Apple does it best” or “Android dominates” should ring a bell for anybody.
I also used to be on one of the extremes, but then I started learning about and coding for all the 3 major mobile operating systems of today (in order of global market share): Android, iOS and Windows Phone. Guess what? Nobody does it best, each of the approaches have their shortcomings 🙂
Buy devices. The cheaper the better.
Nothing compares to the day when I could play with my first Windows Phone. I bought a second hand Lumia 521 from ebay and I couldn’t believe how much power and features it had for such a low price. Same goes for a significantly more expensive iPhone 5. And when I bought a used 2013 MotoG I was yet again amazed by how snappy it was. Smartwatches seemed also very mysterious until I got my LG G watch quite a while back. Now I’m better at separating the hype vs value in the AppleWatch news feeds.
You can go one step further if your personal phone is already on a GSM network (that’s only AT&T and T-Mobile in the US while most of the world is on GSM). You should buy unlocked GSM versions of the phones. That way you can easily move the SIM card to your other phones and use them as your primary phone for a while. Nothing beats the first hand experience with an otherwise unfamiliar platform. Those unlocked devices will also have a higher resale value should you decide to swap any of them (like I did to a Lumia 635 and will keep doing for my others).
Read mobile programming books. There is a vast amount of material online about how to develop mobile apps. Yet it’s the depth that’s usually lacking (why am I supposed to do it that way?!). Like with any complex topic, it’s best to learn the core concepts from books. Don’t repeat my mistake thinking that because an operating system is running on a small and low power device it isn’t complex. All mobile OSs are feature packed and there’s a lot to learn.
Follow news, articles, blogs. Needless to say that this is how you keep up-to-date.
My standpoint on mobile – today
Having extensively used Android, iOS and Windows phones and tablets for the past year by now I should have a more informed and less biased opinion. You might still be able to spot which my platform of choice is for my primary devices, but that’s irrelevant in the bigger scheme of things. I’m not actively looking at the other mobile OSs because I feel that it’s not yet worth the investment given that their combined global market share is about 1%, Blackberry included.
iOS – I like: the hardware, including the quality, size and battery life, snappy apps with a truly native feel
iOS – I dislike: the ecosystem (why can’t I use my iTunes account on Android and Windows Phone? Why am I forced to carry a Macbook to be able to develop for iOS?), the OS is closed source.
Android – I like: it almost fully open source (Google Play Services is the notable exception) and I can dig into it as deep as I want to (and I want to, because it’s Linux), the UX of Android 5 is yet unmatched
Android – I dislike: the intrusive OS customizations by some vendors, the less snappier apps
Windows Phone – I like: the hardware (some really good cheap phones), the OS (it has some really interesting UI concepts), the unified app development model (same app binary code runs on both desktop and phone)
Windows Phone – I dislike: the lack of apps, the fact that I need a Windows 8 machine to develop for it, the OS is closed source
This is my standpoint today. Ask me tomorrow and it might change – I’m open to that. It’s also OK if somebody else has a different opinion – I respect that.
The Tanenbaum-Torvalds debate should remind us all that it is indeed a good thing to have different points of view. That is actually how the world moves forward: we do things, we make mistakes, we learn and we improve. The only way not to make mistakes is to not do anything.
Embrace the good parts of each mobile ecosystem and be aware of their limitations. Be knowledgeable to objectively debate the merits and shortcomings of mobile operating systems, ecosystems and hardware. Finally, if you’re an engineer, have software development knowledge on them all. Mobile still evolves very rapidly and don’t wait for your favorite OS and hardware vendor to roll out a feature or concept that the others had for years.