Marion Gunn <mgunn at egt dot ie> wrote:
Is it really so hard to make multi-platform, open-office-type utilities?
Actually, yes, it is. Mac users don't want an application to be too Windows-like, Windows users don't want an application to be too Mac-like (we'll see how the latest version of Photoshop goes over), and isolating all the differences in platform-specific modules while leaving the core functionality in common modules is a lot of work. If it were easy, it would be done more often.
Isn't Java hiding most of these platform details, by providing unified support for platform-specific look and feel? Aren't there now many PLAF and themes manager available with automatic default selection of the look and feel of each platform?
Aren't there enough system properties in these development tools so that the application can simply consult these properties to autoadapt to the platform differences?
Some known issues were related to filesystem differences, but even on MacOS X, Linux or Windows, these systems have to manage multiple filesystems simulaneously, so a good application made only for one platform needs to consult filesystem properties to get naming conventions, etc... On Linux only, and now also on Solaris and AiX, the need to support multiple window managers also influences any single-platform development.
Also softwares have to adapt to various versions and localizations of the OS kernel and core libraries to get a wider compatible "audience".
Whatever we do today, we nearly always need to separate the core modules of the application from its system integration layer, using various wrappers. Not doing that will greatly limit the compatibility of the application, and even customers don't know the exact details of how to setup the application to work in his environment.
It's certainly not easy, and there are tons of options, but writing a system wrapper once avoids many customer support costs later when a customer is furious of having paid for a product that does not work on his host. We are speaking here about software development, not about ad-hoc services for deployment on a unified platform (but even today, the cost of licences and upgrades makes that nearly nobody has a standard platform to deploy an application).

