GaryG garyg@shasta_SPAMBEGONE_software.com opined the following...
Quoted message said:Well, as a software developer, I think I can comment on this. Although I
would like to develop for the Mac and Linux, I don't. There are several
reasons, both technical and financial (in no particular order):
1) Porting my applications to Mac/Linux (i.e., Java) would be an enormous
undertaking, for a very small market potential.
So why use Java? There are some free toolkits that operate on at least
two of those platforms that would allow you to develop in C++ (Assuming
that this is your language of choice).
Quoted message said:2) Applications built on Java have (until recently) tended to be slow.
This has been steadily improving for many years now. JIT compilers and
well-designed core libraries mean that a colleague and I have managed to
release a program built 100% in Java that behaves with the response
times of a "conventional" application.
Quoted message said:3) It's my understanding that Java applications are very difficult to secure
against crackers (i.e., software thieves), because it is an "interpreted"
language (this same problem applies to .Net).
If your product has a market above a certain size, it will be cracked.
It is simply not possible to prevent this as the code (In some form) has
to be available to the user in order to execute it. Spend less time
building security into your application and you can reduce your
development costs, and thus the end cost. If the product seems good
value for money, the incentive to crack and copy is lowered.
Quoted message said:4) Linux users tend to expect software for free.
True.
Quoted message said:5) Applications written for a cross-platform language are unable to take
advantage of many of the built-in features of the operating system. This
means that the program will have a "lowest common denominator" look and
feel, or I'll have to spend a bunch of time and effort emulating those
features by writing my own code in Java.
This depends on what you are developing. 3d Acceleration systems are now
reasonably standardised and OpenGL is a universal library for
development in that area. Beyond that, my experience is that most
windowing systems are drifting towards a similarity of widgets, so it
would be possible (And recommended) to separate the data from the
interface and thus only have to recode a small proportion for each port.
Quoted message said:Actually, I'd like to stand this question on it's head - why is it that
Windows programs are not able to run on Linux or Mac? Windows is the most
popular OS, by a wide, wide margin...one would think that the folks creating
Linux/Mac OS'es would include an emulator to allow the wide range of Windows
programs to run under their OS'es. There are emulators available, but
they're not built into those OS'es - I suspect this has more to do with
religion than technology, however.
It has to do with the fact that no right-thinking person would choose a
less stable platform over a more stable one. That and the small issue of
licencing and openness which meant that producing a windows clone was a
near impossible task. Despite this, Macs have for some time come with
(Possibly as an optional extra) a windows emulator and the Wine project
and VMWare cater nicely for the Linux market.
Given the vast number of "undocumented features" in windows, it is a
miracle that most windows programs are able to run on windows (even this
is not always the case!), let alone have other systems run them.
Jon