Fifteen years ago, James Gosling and others at Sun helped promote a new programming language, Java, which aggressively promised to allow developers to "write once" and have their programs "run anywhere." At the time, Java aimed to solve the problem of programs being available for one operating system, but not others - most commonly seen with deployment on Microsoft Windows, the gorilla in the market, but not for less-popular platforms, including Apple's Macintosh, Linux, and yes, to a lesser extent, Solaris. More than a decade later, despite incredible progress in the world of standards, and the accompanying growth of the World Wide Web, intended to be computer agnostic, the world of platforms has gotten even more confusing, not less so, forcing customers and developers alike to make irrevocable choices to align themselves with potential winners. Additionally, thanks to splintering of application platforms and sources, customers are being asked to purchase identical products from single manufacturers for different devices, and the more powerful our mobile devices, phones and tablets get, the more this problem looks to only get worse.
Desktop Operating Systems Stable as Chrome OS Looms
For the most part, desktop operating systems have not changed much in the last 10 years. Mac OS X was made available from Apple in 2001, and became the standard since 2002, replacing Mac OS 9. In parallel, Microsoft Windows has seen regular upgrades, as has Linux (and all its flavors). No major competitor has emerged to unseat the big three - although Google's Chrome OS might make things interesting soon.
But Gadgets, App Stores and Platforms Are Proliferating
Where innovation has remarkably changed the world of development lies in two areas - first, mobile and gadgets, and second, the rise of the Web and communities as platforms themselves. While in the early 2000s, we would talk about deploying applications for Macintosh, Windows, or Linux, you now have to also consider writing applications for iPhone, Android, BlackBerry, Windows Mobile, Palm Pre, the iPad, or even if you are coding for Facebook or Twitter. While some code may be reused from platform to platform, development and deployment can be siloed, with different feature sets based on one's computer choice, or different launch dates. And in competitive markets, you can often see one application gain traction for two platforms and its main competition take the others, in an unofficial divide and conquer strategy.
For those of us who remember the huge struggles in the Apple platform in the mid-90s, at times it seemed like we should be thanking our lucky stars for gaining the privilege of installing some second-rate port of a Windows application on our systems. That they even thought enough of us to throw us a bone was to be lauded. In other cases, the Macintosh version would ship months or years later, or we would get one version, only to see three issued consecutively for Windows while we held on to our creaky software.
While things have improved for us Mac folks, just imagine the incredible challenge facing a third-rate bit player on the mobile platform, like Palm's Web OS, trying to get traction and ask developers for their attention - which will likely come only after everything else is solved on all the bigger venues. And the issue of choosing where to code and deploy is only going to get more difficult with Google's Chrome OS looming in the wings.
For the most part, customers are choosing a single operating system and a single mobile platform for their use. They might be Windows people and iPhone users. They might be Mac people who like Palm Pres. They might love Linux and the Google Nexus One. And once users choose a platform of choice, they are almost certainly locking themselves into what's available for them on that specific platform, as titles appear on other devices but don't cross the border.
Buy Into an App Store Ecosystem and You Own That Choice
The reason that Apple trots out the vast number of applications available for iPhone in the iTunes App Store is obvious - showing their momentum, and also giving customers more and more reasons to choose them ahead of lagging platforms. Google's Android platform, which gained nearly 10,000 applications last month alone, is also trying to be relevant through its array of apps. The Motorola Droid radio commercial I heard on my drive home tonight speaks repeatedly about multi-tasking, but also about how many of its apps don't run on those other "so-called smart phones", a not so subtle dig at Apple. If there is a killer app on Android, iPhone users can't get to it, and there are many apps on the iPhone platform that don't run on the Droid. God forbid a customer change their mind and port their number to a new platform - as they would be throwing away not just their call history, but their application library, and would need to start again.
The iPad's arrival into the hands of consumers on Saturday has further exacerbated this issue. While many developers are no doubt excited about a new machine with a robust feature set and near-guaranteed commercial success, they are being asked to develop again for a new platform, update it, and cultivate a relationship with the community there. The race is on for the earliest applications, who think they can pick up a $5 or $10 price point after seeing 99 cents rule the world on the iPhone.
Buy It for the iPhone and iPad? No Discount for You!
And while the iPad's new applications are admittedly nice, don't think you get any kind of shortcut for being an existing iPhone owner. If you've already bought in to Apple's ecosystem approach, and downloaded your fair share of applications, you get the opportunity to do so again, and not with any kind of discount. For example, I purchased the MLB.com At Bat 2010 application for $14.99 for iPhone. Now that I have the iPad, MLB has a dedicated application for that platform, and yes, it's another $14.99. It didn't ask if I had an existing license, and it didn't offer a discount. Meanwhile, even with free applications, we see confusion. The new TweetDeck iPad application, if downloaded, sits alongside the TweetDeck iPhone application, giving you two TweetDecks on your iPad, one big and one small.
TweetDeck's example is an interesting one as well. Having launched with a cross-platform AIR application, TweetDeck worked with Macintosh and Windows on day one. In the ensuing 18 months, Iain and his team have developed dedicated applications for iPhone and iPad. Meanwhile, Seesmic developed a desktop version of their client for Mac and Windows, as well as a dedicated Web site, an Android version, and a dedicated Windows client, called Look. But Seesmic still hasn't publicly made it to the iPhone, let alone the iPad. Even if the pair are not dividing up the market, their inability to easily be on every platform with high quality shows the risks and stress of operating in today's environment.
iPhone Apps in iPad = Classic Under OS X, and Web Site Tweaking Is Nuts
As for those iPhone apps that so seamlessly transitioned their way to your iPad? Yes, they work, and yes, it's cool to zoom in at 2x the effect, but their cruddy resolution makes me feel like I'm booting up OS 9 in Classic mode under Mac OS X again. Running iPhone apps on the iPad is a mixed experience indeed.
Meanwhile, this whole tumult around Apple's iPad not supporting Flash, and Apple launching an array of "iPad Ready" Web sites that look great on their tablet is completely insane. Steve Jobs was once famously quoted (I believe it was in Fortune around the time of the first-gen iPod) that mobile Web site users didn't want a watered-down Web experience, but instead, a full Web experience. He was right. I've already lamented the fact that my iPad's Safari User Agent is interpreted as a mobile device and not a full-fledged computer. I appreciate sites like Brizzly and Gmail that have adapted to make their sites look great on iPad, but they are solving a problem that simply should not exist. If you have to change your Web site to fit a new device, maybe it's the device and the platform who has the problem, and not you. Just like we shouldn't celebrate a site for making a version that works only with Microsoft's Internet Explorer browser, we shouldn't do the same to laud the extra work required to make domains look great on iPad.
As users, we are in a very interesting turning point in the evolution of operating systems and platforms. The Web's ubiquity and the growth of mobile devices as robust computers in their own right means tremendous potential for new application development. We now can get high quality Web and software experiences on our mobile phones, tablets, laptops and desktops - and the success stories of some developers who have struck it rich developing for the iTunes Store and others is giving code jockeys even more reason to compete for our attention. But even as we get more and more choices of vendors, mobile phones, and application stores, it seems we are actually losing control in terms of getting a unified experience and application access across all. The world of platforms as we know it is splintering, and we are funding it. We are choosing to buy not just more devices, but also paying for the applications in new places.
I may not be a Web developer, but I swear some of the best must lament the time when the hardest decision when deploying was whether or not to test your site and Web apps in Netscape Navigator Gold or not - as they now need to choose to code for the desktop, the Web or the mobile platforms, and then choose their favorites on each, and an order in which to release. It's getting crazy out there. Better in terms of quality and reach, of course, but crazy nonetheless.