Thursday, February 05, 2009

Portable apps that are portable across operating systems (Linux, Mac, Solaris, Windows)

An excerpt from a Wikipedia article on portable applications:

"There is a very restricted category of software that can support a sort of double portability, being both stand alone and cross-platform compatible, able to run on different hardware with little or no modifications, perhaps with minor restrictions. One such software is SymbOS, whose main modules can in their present form be executed on both Amstrad CPC and MSX machines without modification. Only some of its bundled applications are hardware-dependent. To a much lesser extent, Macintosh fat binary applications could be considered as cross-platform, but not always truly portable."

While reading this paragraph, it occurred to me that it is easily possible to create a portable version of Mozilla Firefox which is portable across popular operating systems (Linux, Mac, Solaris, Windows).

A typical install of Firefox consists of two parts. On Windows XP, these are:
  1. Core program (platform dependent): Typically, it's inside C:/Program Files/Mozilla Firefox
  2. User data (platform independent): Typically, it's inside C:/Documents and Settings/Username/Application Data/Mozilla/Firefox
I believe, it is possible (and relatively simple) to mix 4 builds of the core program (Linux, Mac, Solaris, Windows) in a single folder, so that executables and other program files for each operating system are kept in separate sub-folders, while the user data is common. Separate launchers will be required for each OS. This arrangement shall make bookmarks, cache, history, passwords, etc., available in all of the 4 builds. Such a release of Firefox will be quite useful to many users, as it will allow a person to carry a truly portable application, one that gives the ability to seamlessly hop from Ubuntu to Leopard to Solaris to Windows XP.

Potential benefits of such a release:
  1. No need to use Foxmarks, at least for some users. Hop across OSes without having to sync anything.
  2. Carry the application platform as well as applications, across operating systems. To me, this one benefit has disruptive potential. Imagine that a user has a HyperPortable version of Firefox (the one envisioned in this post), and the user installs some extensions on it (a calculator, some basic games, a basic word processor, etc.). The HyperPortable version of Firefox allows the user to carry not only Firefox (and user data) across OSes, it also allows carrying these applications that run on top of Firefox. As Web browsers start being used more and more as application platforms, the importance as well as usefulness of this portability will only increase.

No comments:

Post a Comment