When talking about the mobile phone market, have you noticed that it seems like everyone is taking about and analyzing "smart phones"? That is, there's an incredible focus on smart phones, the vendors, the SDKs, the marketplaces, and users. It's easy to see why: smart phones are extremely capable, monetize well, and there is a lot of competition which leads to innovation which leads to users winning.
There are plenty of logical reasons why a developer chooses to develop for a smart phone instead of a legacy phone:
- smart phones have tremendous features and functionality
- smart phones typically have great SDKs
- smart phones integrate with marketplaces
- smart phones are evolving
- smart phone users are trained to spend money on apps
There's a finite amount of energy in the universe, and the more it's spent on smart phones, the less it's spent on legacy phones. In the mobile space, developers choose the target platform for their application which delivers the best end user experience. In the mobile phone space, developers are targeting smart phones to the exclusion of legacy phones, and that's OK.
Put Your Thinking Cap On
Here now is the thought experiment. Please read the above paragraphs, but mentally replace the word "phone" with "browser". Would the above still make sense? How does "In the web space, developers choose the target platform for their application which delivers the best end user experience" sound? What about "developers are targeting smart browsers to the exclusion of legacy browsers, and that's OK" ?
Those statements sound perfectly valid to me. As a developer, I want to develop and deliver cutting edge applications that exceed my user's expectations. I will realize that to do that, I need to target smart browsers just like mobile developers target iPhone or Android.
Web developers are constantly torn between building the best end user experience with the least amount of effort, and a desire to build one website that functions and appears identical across any and all browsers. I no longer believe this is a primary concern, any more than an iPhone developer is concerned about getting their single app onto any and all mobile phones.
The primary argument against building one website that works consistently across IE6 through IE9, and for multiple browser vendors, is simply cost. It's cost prohibitive to support legacy browsers, especially as developers build out new features using new specs and technologies. The pace of innovation is too fast to spend valuable time retrofitting your app's features for an ever shrinking user base.
You can compensate for this costly scenario by simply developing with technologies from the late 90's. This would mean you would only have to support one code base for nearly all browsers. This also means you aren't innovating. It won't be long before a competitor develops a competing, and compelling, HTML5 application that works faster, has more features, and looks better than your legacy app. Sticking with 90's web technologies means a competitor will eventually release something faster, richer, and more beautiful.
I argue, then, that it's perfectly acceptable to target and develop for smart browsers just like people target and develop for smart phones. In fact, it's a better story on the Web: developers should write apps that work great on smart browsers and gracefully degrade for legacy browsers. It's impossible to gracefully degrade your iPhone app onto a Symbian device.
Smart Browsers Are Where The Action Is
Let's define a Smart Browser. A Smart Browser:
- implements the majority of HTML5 features
- will implement all of HTML5 soon
- is constantly evolving
- competes on speed, stability, features, and developer mindshare
- hosts a capable extensions system
- integrates with marketplaces
- supports alternative platforms (Flash, eg)
Smart browsers are pushing Web standards forward again, which means web developers can innovate again, which means users will win.
For all the reasons why it's perfectly acceptable to target a smart phone, Web developers should target smart browsers and HTML5. Smart browsers are pushing Web standards forward again, and providing a rich platform for developers to build incredible apps for users.
Developers should focus on smart browsers first, and brainstorm how using the wide array of new HTML5 technologies can really make for an immersive, fast, rich application. Once the app is released, features can gracefully degrade to support legacy browsers or simply provide motivation for upgrading.
I believe there are interesting parallels between the mobile world and the Web world. I believe that by studying the mobile world, and its motivations and rationales, developers in the Web world will face hard questions and come to terms with inevitable conclusions.
It's time to think of smart browsers like we think of smart phones. That is, they are in a class all by themselves.