its own home page and news site—and the company can provide similar boosts to partners such as ABC News who want to run the same technology on their websites.
“Knowledge as a Service is the term we coined,” says Fernandez-Ruiz. “You give us data and content, and we will give you content recommendations, personalization, a targeting strategy, and computational advertising to help you make more money.” (Computational advertising is a sub-discipline of computer science, developed partly inside Yahoo’s research division, which aims to show Web and mobile users the best possible ads based on their locations, contexts, or activities.)
Fernandez-Ruiz says Knowledge as a Service “is really our secret sauce at Yahoo—applying science and art at scale.” The more publishers who use Yahoo’s Web technology, after all, the more opportunities the company has to deliver ads or other business-to-business services. Which explains why the Platform Technology Group has been putting a lot of work lately into a set of cross-platform programming and publishing technologies that it calls Cocktails, introduced last November at a Yahoo “Product Runway” event. Livestand is powered by Cocktails— which, like any good cocktail in the real world, has several key ingredients. To understand where Fernandez-Ruiz’s group is going with all this, we need to walk through them one at a time.
Mojito
Smartphones and tablet apps are a huge boon for consumers. But they’re a huge headache for developers, since the three major mobile platforms use three wildly different programming languages. (Apple’s iOS uses Objective-C, Google’s Android OS is largely based on Java, and Windows Phone is based on C#, originally developed for Microsoft’s .NET initiative.) “Ideally, you’d want a single programming language, because each languages carries with it a lot of luggage—tools, IDEs [integrated development environments], consultants, a whole ecosystem,” says Fernandez-Ruiz. “For every app you build, you need to hire a separate team with separate skills. So your costs go up with every new platform. Plus there are rules on how you get in and what you can do.”
If you were a big, neutral player like Yahoo and wanted to move mobile development toward the nirvana of “write once, run everywhere,” you could develop and promote a new fourth language—something Yahoo certainly has the resources to do. Or you could just decide to improve on an existing, widely used language designed to run inside the most common of all programming environments, the Web browser. That’s the course the Platform Technology Group decided to take, by basing Cocktails on JavaScript and HTML—the same technologies behind the AJAX (Asynchronous JavaScript and XML) development approach that undergirded a new generation of Web 2.0 services in the mid-2000s.
But while JavaScript has big advantages—it’s powerful, non-proprietary, and understood by millions of developers—there’s a problem applying it to mobile applications. JavaScript-heavy sites use lots of code. Sites like Twitter.com or Google Docs, for instance, might require 400 kilobytes or more of pure JavaScript. When you’re sending that much code down to a browser, it gets stretched out across lots of Internet packets, which have to be carefully reassembled before any of the code can be executed. And on wireless data networks, which often suffer from high packet loss and re-transmission, that reassembly can take a long time. “It’s not linear,” says Fernandez-Ruiz. “On a bad network, 20 kilobytes might take 1 second, but 200 kilobytes doesn’t take 10 seconds—it might take 20 or 30 seconds.”
Unfortunately, most JavaScript-based Web applications don’t fail gracefully. If you don’t get all the packets, you have nothing: the page just doesn’t load. “We think that is an unacceptable result,” Fernandez-Ruiz says. So his group came up with a workaround: a way to