In the past few months, there has been a raging debate about the relative merits of native vs. HTML5 applications. Obviously, Brightcove is a supporter of the hybrid application model. My company’s interests aside, however, one of the reasons so many are rooting for HTML5 is the desire to maintain the highly productive web development workflow and the fertile web ecosystem that has helped to fuel the innovations for the past 15 years. So can we keep the baby and the bathwater?
Anyone who has done web development is familiar with the following:
- Open text editor and write code. Save.
- Preview results in browser
- Sip coffee and repeat
The ability to make rapid changes – to develop and debug incrementally – is a fundamental part of the web workflow and has brought enormous benefits in productivity and creativity. On top of this fundamental workflow, the open source development world has layered numerous tools to further improve the workflow – in-browser debugging tools like Firebug or Chrome Developer Tools, powerful frameworks like jQuery, not to mention all of the server-side frameworks built around dynamic languages. This innovation engine is one of the reasons that the tech economy continues to grow at a rapid pace, despite the economic woes being felt here and all over the world.
Now consider mobile development. It’s safe to say that the mainstreaming of smartphones and other connected devices represents another phase shift in the evolution of the Internet, yet when you look at the state of tooling in the mobile development world you can’t help but see it as a step back toward the stone age. You’re back to creating executables, which means waiting for your app to compile. Then you need to deploy to your device, which itself requires complicated, special-purpose tools, cables and certificates. Now, instead of just sipping your coffee you have time to make a whole pot.
Is all of this necessary? Is there something fundamentally different about a mobile app that requires developers to rebuild the whole tool chain? The fact that companies like Facebook and LinkedIn are now building hybrid apps for devices using HTML5 suggests otherwise. There will always be a place for low-level programming languages – where control and structure are needed to achieve maximum performance. But most mobile applications today are about content, so just as Google was able to displace Outlook for millions of email users, I predict that HTML5 and hybrid applications will remain a fundamental part of the web workflow for millions of developers.
The biggest appeal of HTML5 is that it provides a uniform programming model based on existing web technologies that not only works across multiple devices but also enables developers to take advantage of native device capabilities like the camera, vibration, local storage, etc. And WebKit-based containers like App Cloud and PhoneGap extend these capabilities with additional hooks into device interfaces, plus enable you to package your HTML5 application into an app that can be distributed via iTunes, the Android market or other stores. (App Cloud also provides a rich set of cloud content services to help you manage your application, but that’s a topic for another day.)
Which brings me back to my main point. Hybrid applications based on HTML5 are attractive because they extend a powerful and mature tool chain into the mobile world, rather than forcing developers to switch to a new (or old) paradigm. This is particularly important because unlike the transition from desktop to web applications, where most people stopped developing desktop apps altogether, this transition is additive. Many if not all of the applications of the future will have both a desktop web and a phone-based interface (and potentially tablet and TV versions, too).
So the answer is yes, we can keep the baby and the bath water. That's why I think we’ll continue to see developers flocking toward the HTML5 programming model – not only because it extends the powerful ecosystem of web tools and technologies but because it will be the only way to target multiple devices simultaneously while maintaining the rapid pace that has fuels both the web and mobile worlds.