Is HTML5 solving the wrong problem too?
Last Tuesday I stumbled upon a interesting post by Paolo “Nusco” Perrotta from Italy entitled Is Windows 8 solving the wrong problem? He’s got some points there and his post really got me thinking if the same logic can be applied to other developments as well.
For instance to HTML5 as a cross device strategy?
Paolos post starts from Microsofts apparent aim to put the next incarnation of their operating system Windows 8 on all kinds of devices regardless whether these are desktop PCs,tablets or even smartphones. The problem this would obviously try to solve is to run Windows 8 applications on multiple devices without multiplying development costs: write once run everywhere. He argues that the same problem was solved already with the invention of Java – a programming language used often but rarely leveraging its multi-platform capabilities.
In a nutshell Paolos point is that it is not the commonalities that form the potential of a system but the differences towards other systems.
This got me thinking.
Isn’t that the same thing we’re talking about when speaking of HTML5 being the future of apps?
Currently many companies are developing individually for the iPad, the iPhone, Android phones and tablets, the web and whatnot. Many develop their apps exclusively for one type of device (most commonly the iPad as the only tablet and the iPhone as the only smartphone).
HTML5 seems to be the way to save on development costs and to fit the users expectations to access an app on any tablet or smartphone no matter what the native technology is. HTML5 apps for the iPad, the iPhone, Android phones, Android tablets, web browsers on a desktop, the Chrome web store, you name it.
The motivation is clear. Companies want to avoid duplicate costs but serve multiple platforms. Users expect to connect their applications with those of their friends regardless whether they own an Apple product or Microsoft or Google or else.
In that respect isn’t HTML5 the saviour-to-be just like it was Java before and probably Windows 8 soon? Is HTML5 solving the wrong problem too?
If it is the differences that appeal to the users, the special functionalities and features, wouldn’t the users expect these features leveraged to the max by their applications? And wouldn’t a common technology like HTML5 always be limited to the lowest common dominator, those features available to all platforms?
I think what this comes down to is the two opposing principles generalization versus specialization.
At this point I want to make clear that I am not arguing against HTML5 as a cross-device strategy. But Paolos post was the first that got me thinking that HTML5 might not be the whole answer.
Developments like i.e. treesaver.js prove that there is a level of specification that forces you to react. Even a simple thing such as the screen resolution requires you to find a way to specialize. Progressive enhancement like modernizer.js could be a winning strategy in that respect.
For the best user experience – and that in the end is what decides about success or failure – a cross-device strategy should avoid duplicate costs and time, provide an app to all potential users but also allow for device specific specialization in order to leverage the “sex appeal” of a particular device.
In other words: HTML5 can be the solution to ~80% of the problem while the other 20% could be solved by device specific developments (assuming that the device specific features make sense for your application).
For me this all sounds like arguments in favour of a modular approach. Instead of write a whole app once and run it everywhere the answer could be to break your apps down to parts that can be run everywhere and parts that are dedicated and find a way to integrate them in device specific distributions of your apps.
I think this is a very interesting topic to debate. What do you think?