The pragmatic side of my developer brain says, "doh!!! its a no brainer...of course". Developing/Porting/Maintaining Apps across several different platforms does not scale. The browser is the Write Once Run Anywhere common denominator that solves this platform fragmentation problem. I would love to believe that. It gives me hope that a 100 hr work week is in fact insane. The world will be sympathetic towards a mobile developer's quality of life. Users will blindly adopt the browser regardless of how atrocious the user experience may be. After all, mobile developers are people too, who need food, sleep, and friends ;)
Don't get me wrong. As a developer that would be great. But when was the last time a technology disruption took place keeping in mind the inconvenience it will cause to the existing skill set of developers. Mainframe developers had to update their skills to adapt in a world dominated by PCs. Client/Server developers had to adapt to the Browser revolution. Mobile developers will have to accept the fragmentation that will exist in this industry for years to come. Here are some of the questions I have pondered while playing devil's advocate to my very very fragile developer ego ;)
Devil's Advocate: Since browser is a mainstream App on the PC, will it also become a dominant App on a mobile computer?
Naive Ego: End of the day, a mobile computer is just another computer. Its a scaled down PC. So we should be able to carry over all our PC development training and map it seamlessly to mobile computing.
Reality of Disruption: The PC is synonymous to a computer and the mobile phone has a computer. Thats pretty much where the similarities end. The mobile experience is vastly different than a PC experience. The expectations from a mobile computer are different than a PC.
The PC is primarily an information consumer, but not much of an information producer. The single most important differentiating factor between the two computers is the fact that a mobile device can produce very useful contextual information. It is a silent two way information flow architecture. On a PC the information produced is mainly keyed in by a human operator. In the case of a mobile device, the information is produced even without the knowledge of the user. What are some of the types of information produced: Location, Location, Location, Am I being touched?, Am I being tilted?, Am I hot?, Am I cold?, What time is it?, Am I close to a friend?, Should I shut myself off since looks like the movie is about to start?. The scenarios are infinite. When this information is mashed with the business information living in the cloud, the true usage of a mobile computer will be fully unleashed. A browser was never designed to provide this experience. In fact it was not even designed for building the complex Web apps like Facebook, Twitter, and Gmail. The web engineers found a way with imagination and innovation. It worked. Will it work on a mobile computer? The page oriented browser in its current form does not stand a chance.
Does that mean I need to go down the stack and re-train in a world of memory leaks, pointer management, and excessive hair loss?
The core purpose of a browser (page-oriented information consumption) does not fulfill some of the biggest benefits of a mobile computer. There will always be a "niche" for the browser on a mobile device. People will always want to look some information up while they are on the go, and the browser will step up nicely for that feature. However, the killer Mobile App will not be browser-based.
A killer Mobile App will architecturally provide the following user experience:
- Will be so simple, even a caveman can use it
- Will never freeze on the user, making them think the device has crashed
- Will make its information available all the time, regardless of what the network is doing
- Will never ask the user dumb questions like, "Do you want to synchronize your data with the Cloud?"
- Will always keep all information current even as its updated on the Cloud.
Coming back to the re-training question, its not the browser technologies that won't work, but its the Browser (the App) that won't work. The browser technologies are quite sound for standardizing around a common App-development platform. Lets dissect each one at a time:
HTML/CSS - UI Layer
A mobile App will be installed standalone, and encapsulate the browser like a library to use the above mentioned browser technologies. But we are a long way from this reality. This is the promise of HTML5. Its most likely 3-5 yrs away, but I would like to believe in it. ShareThis