There’s been quite a bit of misunderstanding about what Palm’s new WebOS is, versus what it isn’t. So I’d like to dispel some of the questions surrounding it from the information I’ve been able to find on it. There isn’t much I was able to find (not surprising, as the thing was just announced today), but we can draw some conclusions from the information.
From Web Apps to Widgets
Many people will respond with derision at the fact that applications in WebOS are built with HTML, CSS, and JavaScript; given the state of most web applications today, this isn’t hard to understand. However, the biggest reason web apps are crap compared to their desktop equivalent is that web apps have no integration with the host OS. Which means that web apps have a tough time dealing with multiple OS windows, the clipboard, and offline access.
When Apple released Tiger, they shipped with it the popular Dashboard interface. Inside were miniature applications which were also written with HTML, CSS, and JavaScript. There was a slight difference, however; Apple included the means to integrate the Dashboard with JavaScript. One example is how a Dashboard widget will display its settings via a smooth, GPU-accelerated 3D animation where the 2D widget flips over. This is possible because Apple included JavaScript hooks to perform this animation. But the core tools were just the same – HTML, CSS, and JavaScript.
The Mojo Framework
WebOS applications are much more sophisticated than Dashboard widgets, and certainly more so than regular web applications. This is because WebOS includes a set of tools for creating apps, called the Palm Mojo Application Framework. This, at its highest level, is conceptually similar to Cocoa Touch on the iPhone; it provides common functionality to all applications. It’s what will provide all the common code on the device, from data manipulation of stuff like your calendars to the whizzy animation effects you’ll see throughout the interface. It’s the reason that, in most iPhone apps, the scrolling behavior feels exactly the same.
So, from what I can tell, the Mojo framework is an implementation of all of these ideas, using JavaScript as the programming language, and using HTML5 and CSS for drawing to the screen. Despite there being very little information, they do mention the following features on the developer website:
- apps are installed and run on the device,
- apps are designed to be multitasked and run in the background,
- apps have full access to gestures and the touch screen,
- apps can use a Growl-esque system to display user notifications,
- apps will have access to sqlite databases for data storage (part of HTML5), and
- apps can exchange data via a common messaging mechanism.
The Performance Argument
“But won’t it come down to speed?” Yes, it will. However, WebOS is based on WebKit, and likely is using the latest enhancements from the SquirrelFish project. There is a battle royale going on right now between the developers of WebKit, Firefox, Chrome, and Opera for fastest JavaScript interpreter, which means that JavaScript is only going to get faster and faster.
Why go with JavaScript? It provides a low barrier to entry; nobody really needs an SDK to write apps. It makes it very easy to sandbox apps, as the underlying operating system is still invariably written in some form of C, and JavaScript provides no way to break that barrier. And many other reasons, which I talked about last year before the iPhone SDK came out.
tl;dr: JavaScript is just a language. Palm used that to build a system for making applications. They’re nothing like web apps.