X

Why ambitious developers need more than just HTML5

The battle rages among developers as to what works best--native apps or HTML 5. Here's the bet Yahoo is making.

Bruno Fernandez-Ruiz Yahoo platform architect
Bruno Fernandez-Ruiz leads the technical and strategic direction of Yahoo's cloud and platform team. He heads the design of Cocktails, Yahoo's technology stack to provide connected devices with continuous, dynamic, immersive and personalized services running on the cloud.
Bruno Fernandez-Ruiz
5 min read

Editor's note: This is a guest post by Bruno Fernandez-Ruiz, whose bio is below. CNET invited him to write about Yahoo's new approach to mobile development.

The much-hyped HTML5 Web standard is often positioned as the alternative to native application development. However, the reality is that WC3's HTML5 alone is not enough at this pivotal time in Web history. Which is why at Yahoo we're determined to return to our tech-first roots and help the Web evolve by pioneering the next application platform.

And guess what? It's more than HTML5.

We believe the answer is a combination, or "cocktail" if you will, of technologies--including HTTP, HTML5, Cascading Style Sheets, and JavaScript--which lets publishers and developers build one visually rich app, and reuse the same code to reach several devices with consistent experiences. We understand the critical importance of reaching Yahoo's 700 million users on all connected devices, and we're making a significant bet that the Web is the right platform to accomplish this.

When David Filo and Jerry Yang started a simple, static content Web site in 1994, they of course had no idea that 18 years later users would be consuming interactive, immersive applications on touch-based tablet devices, like Yahoo Livestand for iPad.

Today, this switch from a site-centric Web to an app-centric Web is forcing developers to rethink the technologies they use, and it's sparking a debate about whether Web apps can really compete with native apps.

Developers focused on creating the best possible user experience are attracted to the performance and usability advantages of native development--in particular the finer memory management control it offers, as well as its ability to access a device's camera, address book, etc.

Unfortunately, developing on several native platforms at once is costly and time-consuming, and the market is so fragmented that most developers can't justify limiting themselves to a single platform. Apple iOS and Google Android combined represent fewer than 500 million of the 2 billion connected users on the Internet, according to the companies' own sales and activation metrics. Therefore, being locked into only one of these non-interoperable ecosystems is a dangerous short-term revenue trade-off that ultimately handicaps growth for any developer.

With 1.2 billion people already connecting to the Internet on mobile devices, according to the International Telecommunications Union, and with more users switching from PCs to touch-based tablets like Apple's iPad, it is critical for developers to find efficient ways to reach both high- and low-end mobile devices. As an industry, we need to start bringing content experiences simultaneously to all connected devices, at a speed and quality that consumers expect.

How do we make this happen?

HTML5 is not a solution by itself, but it is the beginning of a solution. HTML5 provides a useful set of new standard application programming interfaces, but it's not enough to turn the Web into a viable ecosystem that can compete with native device application development. For the Web to regain its dominance and become the next application platform, we need to improve app programming tools, make sure Web apps can run across all devices and operating systems, enable their distribution via closed app stores, speed up their performance, ensure they work even in unreliable or slow networks across the globe, and toughen up security.

Yahoo Cocktails (click to enlarge) Yahoo

With the evolution of Web technologies as our guiding principle, Yahoo developed a Web application development platform called Yahoo Cocktails to tackle these challenges. Our platform combines basic ingredients that exist on the Web already, including HTTP and HTML, Cascading Style Sheets (CSS) for formatting and animation effects, and JavaScript for more sophisticated programming (both on a Web server and on individual devices). Yahoo Cocktails overcomes five big shortcomings of native-only or HTML5-only development:

Security: HTML and JavaScript, the programming languages of the Web, were not designed to run code from multiple application developers in the same page or frame, which has given rise to a typical Web vulnerability known as cross-site scripting. Yahoo has tackled this problem with the widely used Yahoo User Interface Library (YUI), which provides isolation between application modules. In addition, we are working toward a more comprehensive solution with the Ecma standards technical committee in charge of standardizing JavaScript.

Distribution: With well over 500,000 applications in Apple's iTunes App Store, and soaring iPhone and iPad sales, we know that users are happy to consume and pay for applications. But, a challenge for developers is that Web applications distributed as native applications in an app store model require a "chrome" that wraps the HTML5 Web application so it doesn't run within the standard visible browser. Apache's PhoneGap and Yahoo's Livestand make it easy for developers to add this native chrome and to access native device APIs--such as the device's camera--from the Web application.

Packaging: Yahoo's Livestand provides the necessary granularity, modularity, and compose-ability capabilities needed for packaging Web modules into large Web applications, otherwise completely missing from the HTML5 standard.

Performance: Many HTML5-based applications in the Apple and Android app stores don't perform or feel as "silky" as pure native applications, because they can't access hardware-based graphics acceleration. Thankfully, the CSS presentational language is helping to address this in its third version, known as CSS3, which gives developers access to 2D and 3D graphics. Platforms such as Apple's iOS and Google's Android are implementing hardware-accelerated CSS3 for native-like performance.

Reach and accessibility: Not all connected devices have hardware-based graphic acceleration or powerful CPUs, and mobile networks lack the reliability and performance of broadband. Yahoo's approach is to put content at the center by allowing devices to receive and show content to the user gradually as their capabilities allow. This helps minimize the annoying "hang time" users often experience when they have slow devices or connections. We do this with a piece of the Yahoo Cocktails stack, called Mojito, which lets developers create a content-centric experience on the server and progressively enhance the experience on the device by leveraging JavaScript and Node.JS so the same code is effectively running at both ends of the Internet connection.

Cocktails aims to help shape how people will use the Internet in the next decade, especially with connected devices. Because we recognize the danger in this technology becoming proprietary, we will be making our first Cocktail, Mojito, open-source within a few weeks, to evolve the Web into an open platform for application development. We encourage developers to download the Mojito code from GitHub or from developer.yahoo.com and provide us with their feedback.