Sunday, August 18, 2013

Emergence of HTML5: Unlimited Possibilities for App Developers and IT

Last few years have been highly significant and eventful for the app developers and IT professionals in more than one way.  PCs were dominating the personal and enterprise computing spaces for the last 2 ,3 decades.  Even now PCs are not going anywhere and enterprises are not going to dump them in the near future at least. But what about the personal computing space? 

Smart phones and tablets have successfully entered our drawing rooms, if not the bed rooms and rest rooms.  After giving the PC a run for its money, these mobile devices have started helping people solve some of the light weight enterprise problems as well. That's the reason all CIOs are carefully watching the BYOD movements and no one can afford to say an unconditional 'NO' to these personal gadgets. These disruptions in the technology world is characterized by some industry-wide events and trends that are not under the control of any individual or even one big technology corporation

  • When the PC revolution happened, there was one Goliath, one OS - Microsoft and Windows. Now there is no monopoly
  • Though the smart phones era was started effectively by Apple, they don't command more than a decent a market share
  • Openness of Android has enabled even very small, local hardware makers to come up with 'world class' mobile devices though Android itself has so many security vulnerabilities for exploitation by lip smacking hackers.
  • Mobile platform market is highly fragmented between many players and none is having the brutal power that Microsoft once wielded on PCs
  • Microsoft was directionless and confused throughout -where their sweat spots reside and  who are their primary targets? individuals or enterprises?   
  • Consumers are not ready to pay for the personal computing software- be it a tax calculator or a personal organizer or even Angry Birds

Confusion for Developers and IT

Now the biggest question facing individual developers and IT departments is what's their choice when it comes to app development?
  • What will they develop for- desktop or web?
  • If desktop app, will they need to support mobile devices as well?
  • If I develop a windows desktop app, can that be made device independent with relative ease at affordable cost?
  • Do I need to worry about the Chrome OS if I choose desktop app or am I fine with worrying about Windows alone?
  • Do I need to embrace the highly touted 'Mobile first, desktop next' mantra?
  • If I develop a web app, which technology should I go for? Windows friendly ASP.NET or Java technologies or open sources like PHP or Python?
  • Can web apps be truly platform and device independent?
  • Can the web apps provide true native app experience?

There are many questions no doubt, but is there a solution or a combination of solutions? I am not too pessimistic because of the presence of one open standard: HTML5

Emergence of HTML5

Though HTML5 is the next and the latest version of HTML, it's more than just the next version. HTML5 not only provides you just mark-ups unlike the earlier versions, but a lot of hidden scripts and functionalities behind those mark-ups. It would be an injustice to call HTML5 a mark-up language; it's a web technology.

There are so many web technologies, HTML5 stands out from the crowd in that it's emerging as an industry standard promoted by W3C. More importantly all the major web technology vendors have pledged support for HTML5, actively taking part in developing the standard. All the major browsers have started supporting HTML5- Chrome and Safari are front runners; IE, Firefox and Opera are catching up. Reality is if the browsers don't support the HTML5 standards, there are high chances of getting dumped and losing the user  base.

Why HTML5 is important for developers and IT?

These are early days but chances are bright that HTML5 emerges as the de-facto app development platform. HTML5 itself is not a complete standard as of now and no one single browser is supporting the available standards 100%, though Chrome and Safari are very close. Not many real time, complex apps are developed in HTML5 yet. Notwithstanding all the above facts, HTML5 have started answering a lot of questions the technology community and IT are facing

  • If you decide to create a web app now, HTML5 is the most preferred technology because it's cross platform, cross device
  • If you decide to create a native app, HTML5 will still be an option. There are many open source packaging tools that compile your HTML5 app for the native platform- be it Windows or Mac OS X or Linux.
  • You shall switch between web and native with relative ease as per the business and user community needs with just one codebase 

How the packaged native HTML5 app works across platforms? As long as your platform has a browser engine that supports HTML5, it's good enough to run the native HTML5 app

  • If you have Chrome or Safari, then you have the WebKit browser engine by default (WebKit is the powering engine for countless number of browsers)
  • If you have IE, then you have Trident browser engine
  • If you have Firefox then you have the Gecko browser engine

All these browser power houses are supporting HTML5 in varying degrees. In future, you would only expect that the compliance  to grow till they catch up 100% HTML5. So it's safe and wise decision to embrace HTML5 whatever may be your app development needs.  Following facts make the choice more obvious

  • With HTML5, you shall target PCs, smart phones and tablets all at once. With proper architecting, you may do so with a single code base
  • Microsoft's windows native app options are confusing as of now- No updates for Windows Forms and WPF for the last 3 years. WPF got an update only in 2010.
  • You can even build the Windows 8 Metro apps (also called Store Apps) in HTML5.


Without hype, it looks like all the roads are leading to HTML5- be it a consumer or enterprise app, web or native app, PC or mobile app. It's a welcome change from the skills perspective, you don't need to learn too many technologies that all finally accomplish the same. Instead you can focus your effort and energy onto something useful for the betterment of our lives