Yahoo! Announces Cocktails – Shaken, Not Stirred

Developers, time to geek out. Yahoo! has been working behind the scenes for the past several months on an exciting new technology that we think will deeply impact the web developer community. We call it “Cocktails” and it’s the technology powering Livestand, which we launched today at Product Runway.

“Cocktails” is a mix of HTML5, Node.JS, CSS3, JavaScript and a lot of ingenious, creative mind-bending tricks from Yahoo!’s engineers. Today, we are announcing two Cocktails: Yahoo!’s Mojito, an environment-agnostic JavaScript web application framework, and Yahoo! Manhattan, a hosted platform for Mojito-based applications.

cocktails v7

Yahoo!’s Mojito

Mojito is a JavaScript web application framework that makes “your stuff run on both sides”, browser-side and server-side. With Mojito, developers will no longer have to write different code for the server backend and browser frontend. Not only that, but going forward there should be no more warnings on web pages reading “JavaScript enabled is required”, since whenever JavaScript is not enabled in the browser, Mojito-based applications will still run on the server side, all using a single code base.

The name Mojito is very illustrative to what makes Mojito-based applications unique. Each MVC (Model View Controller) unit in Mojito is both a module and a widget. It’s a module because it’s a self-contained package of business logic. It’s a widget because it’s a visual element of the UI the user can interact with. Mojito apps are actually both module and widget. We called these things ‘Mojits’ as way to describe this novel combination between modules and widgets. From there, it became Mojit, Mojito, and Cocktails were born.

Yahoo!’s Mojito is an evolution of existing web standards and web technology. Mojito builds upon standards where those exist as well as on proven technologies. YUI for Cocktails provides the necessary environment abstraction, scoping, packaging , etc. that allows Mojito-based applications to run equally well in a web browser, in a hybrid native/web runtime or in a server using Node.JS. YQL for Cocktails provides the necessary data query abstraction and caching for Mojito-based applications. The SQL-like interface of YQL becomes extremely useful to provide a single interface to the live data on the cloud as well as the local data coming from the on-device Sqlite.

Yahoo! Manhattan

Yahoo! Manhattan is a server-side JavaScript hosting environment for Mojito-based applications running on Yahoo!’s Cloud. Yahoo! Manhattan extends Node.JS to provide the necessary fault-isolation and fault-tolerance, scalability, availability, security and performance you’d otherwise expect from one of the largest web companies in the world. Yahoo! Manhattan provides a simple interface for developers to deploy, un-deploy and manage multiple versions of their Mojito-based applications, leveraging the scale and performance of Yahoo!’s technology infrastructure, e.g. Yahoo!’s Content Distribution Network to reduce the end-user network latency.

Cocktails in Livestand

Mojito powers the web publications in Livestand. Our Livestand development team members develop using a desktop browser running Mojito and Node.JS, and package the app for deployment on the iPad by embedding a web runtime including a native shell managing web views, the YUI library and Mojito. The same Livestand Mojits that run on the iPad also run on Yahoo! Manhattan. This allows the Livestand application on the iPad to offload some of the more complex and time-consuming processing to the Cloud, while ensuring a great experience and perceived performance.

Yahoo! Manhattan and YQL expose the full range of services and content in Yahoo!’s Platform to the publishers on Livestand. For example, publishers on Livestand benefit from Yahoo!’s C.O.R.E. (Content Optimization and Recommendation Engine) for personalization.

So how does this affect you?

We think that it’s very important for others to be able to leverage the technologies we have developed in Cocktails. First, we are working with others to evolve open standards whenever possible, leveraging the lessons we have learned creating Livestand for connected devices, and on unreliable network conditions.

We will also make Mojito open source through YDN in the first quarter of 2012. We look forward to working the community to make Mojito one of the leading web frameworks going forward, so that more and more developers can create web applications that run seamlessly on the client- and the server-side. Later in 2012 we will be opening Yahoo! Manhattan for publishers to be able to run Mojito-based applications on Yahoo!’s Cloud.

Going forward, Mojito and Yahoo! Manhattan will allow you to develop ONE app and deploy it on several devices to lower cost, increase agility and keep a uniform design across platforms (web, mobile, tablet). With the power of Yahoo! Cocktails, you’ll be able to build that app – deployable on several platforms –in the same time it currently takes to build each app individually.

To feel Cocktails and witness the silky and responsive interface, download Livestand from the iTunes App Store – available today. And while you do that, watch the videos below showing Cocktails in action and Yahoo!’s engineers introducing Cocktails.