The term “rich Internet applications” is an old one, coined when Adobe Systems released its Flash technology as a way to define applications that are highly interactive and connected.
Today, there is little doubt the industry has embraced HTML5 as the best solution for cross-browser, cross-device rich application development and delivery. Witness the demise of Flex, the repositioning of Flash, and Microsoft’s announcement that Silverlight 5 would be the last version for the browser.
And now that HTML5 has risen to mainstream acceptance, the industry is seeing what Telerik’s Todd Anglin called “an unusual alignment of technology heavyweights around a common platform,” citing the contributions of Adobe, Amazon, Apple, Facebook, Google and Microsoft, among others, toward the common platform.
“This is unprecedented in our industry,” he said. “Each has wanted to build and own the platform, but with the explosion of devices on the market, now they want to own the tooling services.”
Can this all be traced to Apple’s decision to not allow runtimes in applications on its iPhone? Partly. But it’s also due to the number of new devices coming on to the market, each with different operating systems. “Plug-ins simply can’t keep up with the rapid explosion of all these devices,” Anglin said. “Even if they were allowed to, they couldn’t keep up.”
Jacobs cited a study that declared that 2.1 billion mobile phones with browsers will be in circulation two years from now, and those browsers all claim to support HTML5 development.
But it’s way too soon to declare HTML5 the Web application winner, the experts claim. According to the website builtwith.com, only 8% of the top 100,000 websites have any HTML5 behind them, and only 14% of the top 10,000 sites have anything from HTML5—even if just a Canvas pack. Further, only 46% of Internet users today have an HTML5-compatible browser.
The trouble, according to Anthony Franco, president and cofounder of software development firm EffectiveUI, is that HTML5 is not yet a standard. “Just because someone says their browser supports HTML5 doesn’t mean it’s a standard. All browsers support the W3C recommendation [for HTML5] in a different way,” he said.
And because HTML5 is not uniformly supported, compatibility issues come into play. This, Franco said, creates “an exception-coded nightmare.”
(As an aside, Franco said he declared the term “rich Internet application” dead two years ago. “Let’s break down the term. ‘Rich’ means well thought-through from a user perspective. ‘Internet’ means connected. ‘Application’ is software. All software should be well thought-through from a user perspective and connected. All the things we create and design by default are well thought-through from a user perspective and connected.”)
HTML5 not quite finished yet
Make no mistake, there still are certain kinds of applications for which plug-ins aren’t bad. Silverlight runs in and out of browser, is great if you’re in a homogeneous Microsoft environment, and your developers are skilled in Visual Studio and ASP.NET. Similarly, Flash has a powerful gaming and rich media engine that HTML5 cannot yet match.
So, has HTML5 risen to the level of Flash and Silverlight? Most experts say not yet, but it’s getting there.
Ian Jacobs, spokesman for the W3C, which is advancing HTML5 and its specifications, admitted that not every piece is yet in place, but he said that as the platform continues to grow and build momentum, “We’re getting a more diverse community to the table.”
Performance “has been the one area that keeps people up late at night,” said Aditya Bansod, senior director of product management at development platform provider Sencha. But Jacobs said there is a performance working group at W3C looking to tackle the issue. “They have some performance APIs so developers can fine-tune performance,” Jacobs said. “The standard’s not done, but it’s already being used.”
Bansod said performance is now higher on the list of HTML5 needs than user experience. “User experience and what works well on mobile devices have been well-defined in the last three years. There’s a lot of knowledge being built up around that,” he said.
(Interestingly, EffectiveUI’s Franco said you can’t separate performance from user experience. “How is performance not part of the user experience?” he asked.)
Jacobs also pointed out content protection and the need for streaming as two other areas in which HTML5 is not fully built out, as well as the audio implementation for gaming. Further, he said, the industry has not yet rallied around one codec for HTML5.
“The things we’re working on are what features do we need for trustworthy communication,” he said. “We’re working on tracking protection behind the scenes, linked data, privacy and security issues.”
In a February 2012 assessment of standards for Web applications on mobile devices, the W3C said it is releasing two competing drafts for audio: the Web Audio API and the MediaStream Process API. The W3C’s Audio Working Group is seeking feedback on which approach Web developers prefer in terms of having their needs met.
Specifications for touch, Web storage and defining an API that enables Web pages to use the WebSocket protocol for two-way communications are all advancing, Jacobs said.
He also said the W3C’s Web Applications Working Group is working on a new charter to address “universal access to Web applications across a wide range of devices and among a diversity of users.”
On the graphics side, SVG 2.0 facilitates integration with HTML5, so advanced graphic filters can be applied to multimedia content. Efforts in the works at the W3C include the 2D Programmatic API under the HTML Canvas 2D Context specification; CSS Backgrounds and Borders work on rounded corners, complex background images and box shadow effects; and CSS 3D effects and animations.
Efforts to create audio and video playback standards, and to capture audio/video, are in the early stages of work, Jacobs pointed out.
Have Web apps become mobile apps?
Unless, of course, you’re talking about developing mobile Web applications, where WebKit is just about ubiquitous and most mobile browsers support HTML5 in some form. And this gets to another of Franco’s points: Developers need to stop thinking in terms of Web apps or mobile apps, and consider organizational goals first and foremost.
“We tend to think of channels or technologies instead of user needs and business objectives,” he said. “As application developers, we need to have these bigger business conversations.”
One of those discussions revolves around user needs and the user experience. Reams of research show that users will leave a website if it is slow to respond or can’t deliver what the user wants. So one decision application developers face is to write an application that is native to a device, or to use Web standards to reach more devices.
“If I’m a business that sells insurance and want a mobile application, I have to get developers to build it out,” said Telerik’s Anglin. “Then I have to maintain separate development teams to maintain the apps—an Objective C team for iOS, a Java team for Android—and it becomes expensive to build mobile applications on native devices. Yet, with HTML5 for mobile, the goal is not write once, run anywhere, because then the experience is good for many but great for none.”
“The ability to use the same code across platforms is just huge for the development timeline in terms of maintainability, cost, access to developers,” Abadir said. “There are so many factors that run to the positive.”
Telerik’s Anglin said that now that HTML5 has risen to mainstream acceptance, enterprises are getting into the game. “And that means that professional tools need to follow,” he said.
Many exist, and more undoubtedly will be rolled out as the companies that once fought for dominance in the Web and mobile platform space now battle it out over tools and services.
Which approach to take?
Anthony Franco, president and cofounder of software development firm EffectiveUI, said a number of questions must first be answered before choosing the deployment platform.
1) What is the expected longevity of the app? How often will it be rewritten?
2) What is the developer’s existing skill set? Statistics show there are about 5 million Web developers in the world, while there are less than 200,000 Objective C developers (to write native iOS applications).
3) Where does the application need to reside?
4) How “rich” does it need to be?
5) How integrated into existing software systems does it need to be?
6) What’s your appetite for compromising on features based on the platform you choose?
“Many of the clients we deal with already have a channel in mind. They want to build a Web app or an Android app,” Franco said. “But they don’t want to design something they can’t leverage, say, across mobile devices. That’s difficult, unless they’re writing to the old HTML standard. Then the application is less rich but more ubiquitous. We’re seeing compromise on features; that seems to be the trend today.
“It’s unfortunate for users,” he continued, “but great for developers.”