We’ve written a number of times about the conundrum between having to write a native mobile app in iOS, Android, Blackberry, or Windows and just create a mobile ready web app. No one wants to create 5 codes streams. It’s too much work. Anyway, via slashdot comes a very interesting article about Yahoo! placing their bets on web native technologies like HTML5 and JavaScript to create apps that run anywhere.
For those of you surprised that it’s Yahoo! and not other more “in” vendors, remember that this same company created Hadoop, the Big Data tool taking the world by storm and upon which vendors like IBM are using to address Big Data. There’s still a lot of interesting things coming from Yahoo!
Here’s a couple interesting quotes but it’s worth hitting the site to read the entire article
The first thing you need to understand about Yahoo’s publishing vision is that it’s coming from the Platform Technology Group. This is the same part of the company that created and then open-sourced key technologies that are now part of the Web’s infrastructure, such as Hadoop, which allows companies to run big, distributed software systems, and YUI, a library of JavaScript tools for building rich Internet applications. Yahoo built many of these tools as part of an effort that began more than half a decade ago to reduce what Fernandez-Ruiz calls a “technical debt.” The company was weighed down by all of the separate technologies its engineers had built to support services like Yahoo Music and Yahoo Movies, and it needed a central platform. “There was a realization around that time that we had to switch the company from being vertical to being horizontal, and start creating reusable technology that we could deploy across the whole place,” he says. “That is how Hadoop got started, for example.”
Technologies created by the Platform Technology Group, such as Yahoo’s Content Optimization and Relevance Engine (C.O.R.E.), also help the company and its partners tailor content to appeal to specific users based on their demographics. Fernandez-Ruiz says click-throughs increased 300 percent after Yahoo applied C.O.R.E. to 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.
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.
…………………….
So here’s the big picture: A publisher like Forbes wants to create an interactive iPad or iPhone version of its publication. It hires some Web developers to write JavaScript mojits to handle the app’s main user-interface elements. Much of the content gets pulled straight from the publication’s existing HTML or XML repositories, and is displayed inside Chromeless Web Runtime. To track registration and subscriptions, the publisher uses its own account database, or uses Manhattan to tap Yahoo’s account system, so users can log into the app using their Yahoo usernames and passwords and also get content recommendations based on Yahoo’s own vast database of customer-behavior information. When the developers are finished, they wrap everything up inside a bit of native iOS code and they submit the app to the iTunes App Store.
Then when Forbes wants to come out with an Android version of the app, the same developers simply repurpose the existing mojits, putting them inside a Java wrapper instead. (Fernandez-Ruiz says an Android version of Livestand, demonstrating how Cocktails works on the Google operating system, is coming soon.) In essence, each new Cocktails app would be a standalone, publisher-branded version of Livestand—but simpler, since there won’t be a need to navigate between publications.
Yahoo! uses a bunch of new or improved technologies to make it all work. I summarize what they note in the article:
- Mojit: server side java script that transfers to the client when ready
- Chromeless Web Runtime: a way to run a browser without a browser and incorporate some aspects in any kind of browser
- Manhattan: improved node.js for managing distributed services easier and faster. “We have optimized [Manhattan] to run mojits and give you access to all of these Yahoo APIs: the user ID, the recommendation, the whole Knowledge as a Service stack.”
- Data Asset: “Regardless of what the strategy is for Yahoo, you are going to need storage,” he says. “You are going to need a big data platform. And that is what we have been doing [in the Platform Technology Group]—solving those hard technical infrastructure problems and reducing the technical debt that has accrued over 15 years.”
I find this all extremely interesting because I personally don’t care how you make a mobile phone or tablet application. I just want it to be there and easy to use. If I switch from an iPhone to an Android (gasp!) or vice versa, it would be great to take my apps with me. That only happens if you don’t have five different code streams
So to Yahoo! I say, “More and faster please.”
Hey Mike,
Hope things are going well for you; we haven’t spoken in a while. Nice article; thanks for sharing; I had not heard of this yet. It see the final piece of still wrapping this in native code would be an issue; have you looked into more ‘write once, run anywhere’ type of MEAPs such as Rhomobile? We have delivered a few apps using it and it takes care of generating the native code when necessary (vs. CSS HTML5 etc). Any thought on Yahoo’s tool/platform vs. this type of concept?
Hey Jerred,
We have looked into it. Greg Barlin has been our main driver into Rhomobile, Pyxis and others. They’ve had some success with it. MEAP’s can help get your site and native ups up and running quickly. The only problem is that they don’t play all that nicely with the IBM, Microsoft, and Oracle vendor approaches. They are a separate code stream at best. That means that if you have a portal site and want to go mobile AND create native apps, you are faced with a bit of a conundrum. Do you use IBM’s Mobile theme? Do you buy Mobile Entree for SharePoint? Do you skip it all and just rebuild using a MEAP?
There are reasons for both……
I’ve still never used anything from IBM; not intentionally, just haven’t. We have built a few apps with Rhomobile and in all cases (except one), we have rebuilt the mobile app utilized existing or new services for the backend CRM, etc. The only reason there was an exception is that we wrote an actual native iPad app and just used RhoSync/RhoConnect for data (which still used new web services for the backend operational data). Most of these apps had some type of single device interface where usability was awful. Now we have (for the most part) a single codebase for multiple devices and vastly better usability