In Mobile Development, Run Everywhere can mean Debug Everywhere

"Write once, run anywhere" was a phrase used by Sun Microsystems as a major benefit for using the Java language. Mobile Application Platforms vendors have begun using the same phrase for justifying their value today.

To be sure, "Write once, run anywhere" (WORA) or "Write once, run everywhere" (WORE) has a tremendous appeal in mobile application development because of the huge number of mobile devices and mobile operating systems out there. Even within one device category, you can find many variations. So for example, iPhone and iPad have the same OS, but they differ in terms of screen sizes and other capabilities. The story with droids is even worse. The screen sizes start at around 2.5 inches and the latest from HTC and Samsung are as big as 6.3 inches.

Yet screen size is not the only differentiator. You can categorize mobile devices with other criteria as well, such as their intended use. There are phones and then there are tablets. And now increasingly we have "phablets" that are neither tablets nor phones, or they are both depending on your point of view. I can go on and on about this issue of device diversity but you get the idea.

For now, my point is simply that there's so much fragmentation out there that if you wanted to target multiple devices, developing individually for each of them would typically prove prohibitive, which is where cross-platform application development can have huge benefits. Besides, you can realize other related benefits, such as the ability to target any new platforms quickly, while maintaining comparatively smaller teams to manage deployments across all those platforms.

Now, while many tools claim to support cross platform application development, remember that there are many approaches to achieve this. The two popular approaches are:

  1. Hybrid. Using this approach, you write an app (called hybrid apps) using web technologies -- HTML, JavaScript and CSS -- and then wrap it with a layer that provides access to some native functionality, as well as the ability to install apps via app stores.
  2. Compile to Multiple. In the second approach, you write code in a common language just like in the first approach, but you compile the core of the application natively. Which means the end result is a native app written in Java for Android, Objective C for iOS and so forth. After you compile to native binaries, end users install those apps on their devices.

There are some other approaches too, but the key point is that while all these approaches follow the WORA model, differences in the end result can become quite significant. As a result, these approaches have their pros and cons and you should pick up the right tools (or combination of tools) based on your scenario.  We will provide much more detailed explanations and advice in our forthcoming report on Enterprise Mobile Application Platforms.

Meanwhile, be sure to evaluate any claims of cross platform development very carefully because -- as this 11 year-old article about Java and competing languages points out -- "Write once, run everywhere" can very easily become "Write Once, Debug Everywhere."


Our customers say...

"The Web CMS Research is worth every penny!"


Gil, Partner, Cancentric Solutions Inc.
iStudio Canada Inc.

Other Web Content & Experience Management posts

Whither Sitecore Now?

It seems time for an answer to the question: what is Sitecore, really, circa 2023?

TeamSite Marriage Counseling

Some TeamSite implementations linger on, like a really bad relationship you can't seem to end. Maybe it's time for a clear exit?