Tuesday, January 20, 2009

Palm webOS

It was hard to know where to start in talking about all the exciting software development prospects for the Palm Pre and webOS. I began by speculating about an eventual Java SDK for webOS, which would be a heck of a left hook to follow the Mojo SDK's right jab. But I'm getting ahead of myself. Even just considering the JavaScript SDK they have already announced Palm has put themselves in an astonishing strategic position that I'm surprised no one is talking about. By building a system using de facto cross-platform standards like JavaScript, WebKit, Java and Jetty, Palm has made a great platform for creating companion applications that can run on any desktop—Windows, Mac, or Linux—leveraging the same code that runs on the handset. You won't see Apple being able to deliver iPhone applications to the desktop like that any time soon, at least not for the 90% of personal computer users that don't own Macs.

Palm has prepared us not to expect desktop synchronization via cable or cradle like what Palm OS users have been accustomed to since the beginning. But the Pre is among other things a modernization of the original Palm concept of having always-on-you personal information management, updated to the reality that much of people's personal information now lives in the cloud. The desktop is still going to be the command center for most people's digital life and Palm knows it. So gazing into my crystal ball, let me tell you how the desktop story will in fact unfold:
LAS VEGAS, CTIA Wireless 2009, Apr 1, 2009 - Palm, Inc. (NASDAQ: PALM) today announced the Palm Desktop Companion, an application that brings to the Windows and Mac desktop the same integrated calendar and contacts found on the Pre smartphone.... Desktop Companion uses [crystal ball is clouding a bit here] to keep your calendar and contacts synchronized automatically without the use of cables or cradles. [Did I make out the phrase "peer-to-peer" when the crystal hazed over in that moment? Or was there a faint trace about a "secure web service"? Oh well, the future is coming through clearly again now.]

SUNNYVALE, CA - May 15, 2009 - Palm, Inc. (NASDAQ: PALM) today announced that the Mojo SDK will not only enable third party developers to write applications for webOS devices like the Pre smartphone, but to deploy the same applications to the Palm Desktop Companion.... "The SDK enables webOS developers that follow some simple SDK guidelines to build applications that 'unfold' naturally on computers with larger screens for the extra ease and efficiency of the full desktop experience" says Palm's VP of Developer Services Horton Hooville.... [The image dimmed for a moment there... not sure I got that name right.]

MOUNTAIN VIEW, Calif - June 23, 2009 - Three days ahead of the scheduled release of Palm's Pre smartphone, Google, Inc. (NASDAQ: GOOG) announced the release of GMail and Google Docs for the Pre as well as for the Palm Desktop Companion.... This announcement brings Google's popular mail service to the Pre as well as instant access to all of your office documents at any time. When at their desktop, users of Palm Desktop Companion now have access to Gmail and the ability to view and edit documents, presentations and spreadsheets even when they are offline....

BARCELONA, GSMA Mobile World Congress, Feb 15, 2010 - Palm, Inc. (NASDAQ: PALM) today announced the Foleo Pro Mobile Companion... The Foleo Pro runs properly configured applications created for the Pre without modification, but with the same ease of use found in the Palm Desktop Companion application.

The unfolding UI concept would be the key to making application screens that stack on the phone to display side-by-side in the familiar "master-detail" layout seen in applications like the original Palm Desktop and Microsoft Outlook. I blogged some thoughts about this idea way back in Sept 2005 in one of my very first posts, complete with a lame mock-up to illustrate. It's simple, really. Many, if not most mobile applications provide a "master" or "list" view of the data from which the user selects an item and then navigates to a screen that displays the details of the selected item with additional options for manipulating it. If these master and detail screens (or "cards" as Palm now seems to like calling them) are identified as having this relationship in the code by using an API that binds the selection in the master view to what is displayed in the detail view, all it takes to spread the stacked cards across a larger surface so they are viewable side-by-side is a little CSS. Making a desktop version of a webOS application might involve no additional coding at all, just some care to follow certain design guidelines.

The main work for Palm would be to create a native application that hosts the webOS environment on each system they want to support and provides some hooks into system services so that things like calendar event reminders work from the desktop. From what I can glean from looking at the leaked screenshots of the SDK in action, most of the hard work of developing this desktop presence has already been done since it went into developing the webOS middleware already on the Pre. That's the main reason I'm optimistic that Palm could pull this off during this period of severely strapped resources.

They would also want to integrate their application store in the desktop companion app, since the desktop is clearly the easiest and most engaging way to search for and try out applications. Letting application shoppers try an application in a simulated Pre phone launched from the desktop app would be a great way to break down the natural resistance to trying something new. I also believe there are opportunities to make installation of the application to the phone slicker and smoother than we've seen on other platforms using a desktop companion app like this.

Of course, some mobile phone features that Pre applications could use like the microphone, camera, voicemail, SMS and GPS would not be natively supported on most desktop computers. But if Palm or a third party were to implement peer-to-peer communication between the Pre and "Palm Desktop Companion" it wouldn't be much of a stretch to make even these phone features usable from the desktop. While you're at your desk you could receive SMS messages, proxied by your phone, and answer them using the keyboard and mouse already at your fingertips. With that link to the phone in place, seeing voicemails show up in the inbox of the desktop companion and being able to listen to them there might be a modest effort that extends Palm's story about total integration of messaging and contacts one notch further. Desktop web searches or mapping applications could be localized by clicking a "near my current location" toggle that geocodes a GPS fix retrieved from the Pre in your pocket and adds the location data to the query.

What a spectacle it would be to see Palm show up out of nowhere as one of the players in the hotly contested cloud computing arena. And not just to show, but to conquer a niche because their AJAX APIs expose unique messaging, location, even voice and camera functions on the mobile that only their position as a mobile software/hardware integrator makes possible!

Am I getting carried away now? Perhaps a bit. I may have compressed the timeline for these developments to unfold. But my bet is that their webOS strategy gives Palm a long enough lever to move some surprising mountains, even in their current weakened state. If they share the vision I've described, the key success factor in realizing it will be a peerless commitment to enabling the success of third party developers so that Palm has a strong ecosystem to pass the baton to. Palm's success in the 90's was built on stellar developer support and it's revival today must be built the same way. Early indications give hope that Palm gets this.

If Palm declines to offer a C/C++ or Java SDK and loses some developers in order to focus their energies on getting webOS and the Mojo SDK a place on the desktop, it'll be hard for me to feel all that disappointed. For that, I'll brush off my JavaScript skills and get right to work.

Comments

Thanks for the most in depth blog on developer related information for the Pre thus far!

It seems like getting our hands on a pre-release version of the Mojo SDK is out of the question... but, are there any resources available to study up on the WebOS object model, available API's, etc?

Much appreciated!

Posted by beeno at Wednesday, January 21, 2009 18:50:42

> Am I getting carried away now? Perhaps a bit.

Definitely Premature.

Do I wish I were a big enough man to shun the puns? Sure. Is this going to be my last one? Probably not. I'm a realist.

Posted by mian at Saturday, January 24, 2009 02:11:24

Great post. From my perspective, that missing link would be to enable the Pre to be turned into a mobile web server, that then serves the pages either via a PAN or LAN to the attending PC; the Palm Desktop Software then being an RIA that connects over HTTPS/or some secure tunnel to the device. That would take advantage of pretty much all that you have said here, and would be a heck of a way to make the mobile-focused marketing stick, while making carrieres quite happy.

Posted by ARJWright at Saturday, January 24, 2009 12:22:56

I really have to be the voice of dissent here, as it seems to me that the models of interaction are so different between a small touch-screen device such as the Pre and a desktop computer. Just as a "scaled-down" desktop makes a terrible multitouch mobile app (lots of iPhone examples there), it seems likely the converse is true, a small mobile abb built for one set of interaction pieces will not be useful or attractive on a 24-inch desktop computer with a mouse and keyboard.

There can certainly be value in code-reuse, and webOS already has this benefit built into its concept: HTML, CSS, and Javascript are incredibly widely-deployed, no installation necessary. So, possibly, a desktop rewrite could be as small as overhauling the user interaction and interface and stripping out pre-hardware-specific Mojo stuff. Which might be as good as it can get.

Posted by Ryan at Tuesday, February 03, 2009 02:16:51

Ryan, I think your second point is the most important one: webOS code should be very portable to all kinds of machines. But I can also assure you that there are some surprisingly simple framework designs that really could allow the identical code to render on desktop and phone in a way that is perfectly tuned to each device. I've implemented a framework like this in Java and while it's not some general purpose silver-bullet, it really works well for a great number of data-centric applications like PIM, email, RSS reading, or browsing of media collections.

Posted by cervezas at Tuesday, February 03, 2009 15:23:26

David - it seems you might be right on the money after all! No doubt you've seen that first chapter of the webOS developer book Palm posted? Smack bang, right there in the introduction...

"Palm webOS is designed to run on a variety of hardware with different screen sizes, resolutions and orientations, with or without keyboards and works best with a touchpanel though doesn’t require one. Because the user interface and application model are built around a web browser, the range of suitable hardware platforms is quite wide, requiring only a CPU, some memory, a wireless data connection, a display, and a means for interacting with the UI and entering text."
http://developer.palm.com/w...
webOS Desktop, here we come...!

Posted by freakout at Wednesday, February 18, 2009 08:00:30

So David,

Have your speculations about OSGi been proven true? What about the 'portability' of WebOS that you are suggesting in this article?

I desperately hope it's true ;-).... I am really rooting for Palm to succeed in a wild way.

Posted by philips at Sunday, April 12, 2009 20:49:32

Well, Palm hasn't announced anything like my imaginary press releases, but as Tim mentioned in the last comment, the new O'Reilly book talks about how Palm webOS will run on a variety of hardware. The demos of the IDE show that this includes desktop hardware. As for OSGi, only time will tell. Sprint seems to be leaning heavily on the OEMs for their new handsets to incorporate it, and I'm quite sure that Palm is no exception--especially if it already has a CDC Profile Java environment under the hood. If I were Palm my first priority would be the Mojo SDK--the SDK for the service layer in webOS would come later. So I don't consider the absence of news about a Java SDK to be meaningful one way or the other.

Posted by cervezas at Monday, April 13, 2009 10:19:42

Add Comment

Comments must be approved before being published. Thank you!