Is Palm a Player or Just a Pre-Tender?

Once the leader and innovator in all things mobile, in recent years Palm has barely kept up with the pack, let alone acted as a leader. With the introduction of the Palm Pre it appears that open source technology is helping bring Palm back from the edge of irrelevancy.

Many of today’s mobile phone users may not recall Palm’s dominance in the mobile market dating back to the 1990′s. Palm hit the market and was running circles around the “contacts and calendar” only personal digital assistants. Palm devices boasted a touch screen and a capable computing platform. Palm even brought to market (in the USA) the first viable smart-phones. And there were applications — lots of them. Today Apple boasts of tons of applications being available for their iPhone platform, but the real trailblazer for mobile applications was Palm. The mobile developer community was thriving thanks to Palm and their innovative devices and a market that just couldn’t get enough gadget gear.

While other entrants into the mobile space made some small dents into Palm’s market share over the years, Palm appeared to have essentially self-destructed. Over time Palm would announce but then never release incremental enhancements to their operating system. The hardware and software were split up and sold. With each disappointment, Palm’s goodwill quotient eroded. As a result the Palm developer community has largely scattered like the folks at the Tower of Babel. Many developers have embraced the iPhone; others Windows, BlackBerry and more recently, Android. Who can blame them after repeated failures? Perhaps the release of the Palm Pre will entice these developers back to their first love. I myself was pretty skeptical when I heard that Palm was making another go at it — but Palm deserved another look. Here’s what I’ve found.

WebOS

While the Palm Pre is getting all of the media attention, the real story is WebOS. The hardware can be described as an iPhone with a physical keyboard — and it is delivered with a form factor shy of the “brick-like” feel of the T-Mobile G1 or any number of other HTC devices. While the hardware appears to be a very compelling entrant to the space, the innovation is in the operating system. It’s all about the user experience, and people use software! This is a good move in my view.

Trotting out another device with PalmOS would be a non-event and the (ahem desperate) move of using Windows Mobile on a Treo is something I have barely come to terms with after all these years. Instead, Palm rolled out WebOS — its new built-on-Linux operating system. While Palm has certainly not embraced open source with the same flamboyance as the Android team, the array of open source technologies enabling the WebOS platform is non-trivial. This embracing of open source for a main-stream device by a major player such as Palm is a good indicator of open source’s penetration to the hearts and minds of today’s mobile decision makers. Palm has setup a website dedicated to interfacing with the public about its use of open source technology. Here you can find the open source packages in use, including the patches made by Palm to enable WebOS’s features.

As its name suggests, WebOS is very “web” centric. The primary operating environment essentially wraps the open source WebKit browser engine into a clever user interface built on web standards — applications are written with familiar technologies such as HTML, CSS, and Javascript. That’s right, I didn’t say C/C++/Java/etc. This is a refreshing change of pace for mobile device development.

One significant consequence of this approach is that the platform is accessible to a much larger community of developers than traditionally seen in the mobile space. A developer or designer with traditional web development skills can create a functional and useful application for WebOS without ever concerning himself with a pointer or a try/catch block! It is very likely that Palm will provide an SDK which enables low level development to take place (i.e. C or Java), however that is not required to build WebOS applications. The Pre is not simply an Internet tablet – there is more than just a browser screen and an always-on connection. Remember, this is a phone too! It would be a stretch to say that the “browser is the computer”, but WebOS does make some significant strides in that direction.

Mojo , Javascript, Prototype, & JSON

The WebOS environment is pushing the standards envelope by employing the not-yet-finalized HTML version 5 which includes the holy grail for web apps — local storage! A mobile device capable of leveraging the power of the web plus local storage is a force to be reckoned with because such a broad array of application scenarios can be satisfied. Beyond HTML, CSS and the very capable Javascript language, WebOS includes a framework library named Mojo Application Framework.

Mojo brings features typically associated with heavy SDKs in C or Java to the browser development environment. A WebOS application may interact with physical storage, PIM (Personal Information Management) databases and beyond — and all of this via the Mojo framework. If you are comfortable with coding in Javascript, you’re well on your way to developing applications for WebOS.

How do the applications looks — please tell me this isn’t a Java AWT application. Thankfully, no! WebOS provides more than just your typical “web form” user interface capabilities. Mojo permits Model-View-Controller application design and a full complement of user interface “widgets”. Combining a rich (and easy to use) user interface with the power of Javascript, DOM (Document Object Model) and Ajax you have the ability to create rich internet applications right on your mobile device — a very compelling story. But, we can take it a step further and look at the interaction available via WebOS’s Services APIs. These services allow a WebOS application to interact with the Location Based Services (i.e. GPS), the Camera, and oh-yeah, sensors, and even the telephone!

You’re probably wondering how a Javascript “application” can have so much power and access to the device? The answer lies in the binding between the scripting language and the services APIs. These interactions take place via calls to a function named serviceRequest. The arguments to this asynchronous function include a service name and a JSON (JavaScript Object Notation) object which contains all of the specifics such as method name and parameters. This object can even include information on what to do if the operation succeeds or fails. Here is an example of initiating a map lookup:

this.controller.serviceRequest('mojo://com.palm.applicationManager', {
  method: 'launch',
  parameters: {
    id: "com.palm.app.maps",
    params: {
      query: "1600 Pennsylvania Avenue"}
    }
  }
});

If you are at all familiar with Android development, this is very similar to creating an Intent and issuing a called to startActivity within the Android SDK. While syntax always matters, one might argue that an advantage of the developing in the WebOS environment is that the parameters are more readily understood in a JSON object thanks to the JSON syntax of prefixing each parameter with its name and a colon. Ironically, this reminds me of Objective-C’s parameter passing approach. Oh well, its all good.

It’s the economy, stupid

So, how will WebOS fare? Great question. It is certainly too early to tell. I think the answer comes down to execution and marketing. WebOS is an idea whose time has come and the Pre appears to be a promising inaugural device. But is it exciting enough to draw people from iPhone? How well can WebOS scale “down” to compete with the upcoming Android non-smartphones? Might it be found on a netbook? I think it could. If it doesn’t sell, it doesn’t matter how cool it is. Beta max anyone? And of course we need applications!

What about the gaggle of PalmOS applications written by those intrepid mobile developers over the past decade? Thankfully Palm has addressed that opportunity in the form of the “Classic” emulator application which may be purchased and run on the Palm Pre. This emulator allows you to use your favorite PalmOS application from yesteryear. That is exciting, and in my not so humble opinion a necessity to draw people back to the brand. Of course Palm has to make sure that new WebOS applications are readily available and begin to woo back their development base. I personally am very excited to learn more about WebOS. I just have to count the cost of sneaking another smartphone into the house.

Fatal error: Call to undefined function aa_author_bios() in /opt/apache/dms/b2b/linux-mag.com/site/www/htdocs/wp-content/themes/linuxmag/single.php on line 62