Underneath the sleek exterior, the multi-touch display and the sliding keyboard of the upcoming Palm Pre smartphone is the real innovation: a new kind of operating system designed with the mobile Web in mind.
For the mobile enterprise, Palm's webOS and companion Mojo software development kit offer a dramatically simpler way to build sophisticated mobile applications that are highly integrated with Web-based content and services, according to several developers working with these tools since early this year.
"It's a completely new way of thinking about an OS on mobile devices," says Christian Sepulveda, vice president of business development at Pivotal Labs. The San Francisco software development shop is building its own webOS application as well as several for third parties.
It's the combination of these kinds of capabilities that excites developers. "Palm started with a clean sheet of paper," says Tom Conrad, CTO for Pandora, an Oakland, Calif., company that offers a personalized Internet radio service, widely used on iPhones. Pandora just introduced a version for BlackBerry and in December started working with Palm on a webOS version. "Everything about the Pre feels like it's 'future-oriented,' not an iPhone-inspired knockoff."
The Pre (pronounced "pree") smartphone, unveiled in January and due out by June 30, is only the first product that will run Palm's webOS, though Palm so far hasn't announced any other devices nor said much publicly about the OS. (O'Reilly Media is publishing "Palm webOS, 1st Edition," by Palm Software CTO Mitch Allen.) Developers are restricted in what they can say by nondisclosure agreements, but they were able to confirm many of Palm's claims for the OS, and to talk about building applications for it.
What's known is that Palm's new platform is based on the Linux 2.6 kernel, with some added open source and custom subsystems, such as telephony, touch-screen input, power management and so on. The kernel hosts what Palm calls the User Interface System Manager, which handles features such as navigation, application launching and notifications.