October 01, 2013

Developing for the Web or for Classic Mode

Apple's transition away from Mac OS 9 to Mac OS X is more than a decade old at this point, which means an entire generation of computer users may never have been exposed to the "Classic" Mac OS, which launched in 1984 and evolved for the next few decades before being put out to pasture.

I remember, as if it were yesterday, my own delight at hearing the deliveryman knock on the door and leaving behind a package which contained a retail box with Mac OS X 1.0 on compact disc, which promised to completely change the way I interacted with my computer, bringing with it a new and modern look, a new kernel and more.

It Looks Great, But What About Printing?

Living on the bleeding edge by installing this first version of Mac OS X meant it had some obvious holes. For one, I couldn't print. For another, I couldn't play any DVDs. So while some of the features were exciting, it was clearly limited. These limitations, and general skittishness over new technology, led many people not to dive into Mac OS X right away - and some software developers, most notably Quark and Adobe, dragged their feet on committing to the new OS, waiting for the market to demand it. In the meantime, we users had to live in a "one foot in, one foot out" experience, with "Classic" applications launching inside of Mac OS X, displaying the traditional Apple menu bar, the traditional Finder and all other bits one would expect from an older Mac.

This awkward time had developers forced to make a choice. Would they create applications solely for OS X, continue on a path of developing for OS 9, or ship both and risk a gap in features? It's, pardon the pun, a classic dilemma of developing for a known and existing market, or preparing something for a future market. In time, Classic faded away, with Steve Jobs famously holding a burial for it at the WorldWide Developers Conference in 2002. All the big vendors, from Adobe to Microsoft, shipped for Mac OS X. Printer drivers eventually came along, as did the ability to run DVDs and do everything Mac OS 9 could.

The Desktop is the New Classic. The Web is the New OS X.

I feel we're at a similar crossroads now in development, at least on the desktop. As a fulltime ChromeOS user, I don't ever install proprietary software outside of my browser - but I also don't feel limited in what it is I can do. I can print, using Google Cloud Print to my Canon printer at home. I can play all my videos on Netflix or Google Play and my music through Spotify or Google Music. I can run all my productivity apps on Google Drive, edit photos in Pixlr and so on. Even at a time when traditional operating systems are the significant market share leader, I think we've reached a point where developers looking to reach the widest numbers of potential users are better off making a product for the Web than they are by picking a desktop platform - and in those very rare cases where I find out an application needs to be downloaded to even run, I'm surprised.

When you fight against the momentum of the Web, you lose. And while this doesn't mean every part of the Earth has ubiquitous high speed broadband - far from it - I do believe we are at an inflection point, like all those Mac developers were 10+ years ago, where one would need to choose between building for the platform that's known or to the platform that's unknown. And just like in the Mac OS X scenario, the Web as a platform may have a few holes, but the Web's modern browsers are becoming stronger and more robust at a pace I'd argue is outstripping improvements in our traditional desktops.
The Pixel is My Machine of Choice and It's All Web.

My Data Follows Me On Every Device.

In 2011, just after I joined Google, I talked about how I used Chrome all day long, and used multiple browsers to separate my business profile and my consumer ID. Since then, I've moved completely to ChromeOS and Chrome has debuted on both Android and iOS, so you can sync your data to practically any smartphone and never miss a step. Working closely with the Chrome Developer Relations team here at Google, I get to see the browser get faster, and become an even more robust platform for creating rich applications, with exceptional video and sound.

By living completely on the Web, as I mentioned last year in my post on the future of storage being none at all, any computer that has Web access is my computer. Hardware is simply a conduit for my access to my data and my preferences. Once I log in to my accounts through the browser, I should be able to pick up right where I left off, and I shouldn't be limited based on whatever client software or plugins may or may not be installed on this machine.

Pick the Platform for the Future.

Hindsight is 20/20, of course, and we have the benefit of history to fall back on, which clearly shows developers were right to present a fast track for migration away from the creaky OS 9 and start coding for OS X. While Apple's incredible success over the last six-plus years especially has been due to the company's work on iPhones and iPads, had Mac OS X never delivered on its promise, the company would certainly be a shadow of itself. The direction to a more modern OS proved to be the right one.

Now, again, we have a choice - to a more modern platform with more opportunity for a rapidly-evolving set of users for whom the Web and anytime access are a given, and for whom nearly all their time is spent in the browser. Making the leap as a developer to a lesser-known path may involve some risk, but unlike that time at the beginning of the last decade, you don't need the overwhelming majority of a small market base to upgrade and get to your product. Most of those online are already there - and they want your app.

Usual Disclosures: Yes, I work for Google. I work in Developer Relations and think about this stuff a lot. It doesn't mean I have any bias for or against any of our real or assumed competitors.