quote: Original post by -vic-
You want to write software that runs in Linux and Windows? Use Java .
I never said I wanted to write Linux/Windows compatible software right away.
However, even if I did, I''d avoid Java. Java''s versioning support is next to nil (filename-based), side-by-side Java installs don''t work, and Sun''s JVM often sacrifices speed for the "purity of Java," i.e. everything is an object...unless you use JNI, which lets Sun get away with what they are lambasting .NET for...the ability to run native code. With .NET, I can lock to certain versions of assemblies, and if they aren''t installed, I can install them without worrying about overwriting an assembly being used by someone else, or just include them with my application in my product''s directory. If I''m worried that Mono 1.1 or 2.0 will affect my product, I just have to put a single line in my app''s .config file and my app will always run on Mono 1.0 exclusively.
In addition, my testing responsibilities would increase exponentially. I''d have to test not only on multiple Windows installs and multiple Linux distributions (and with Java [until Rotor for OSX finally matures], Mac), but multiple JVM''s from multiple vendors to ensure that there aren''t any platform-specific or JVM-specific optimizations that affect my performance.
So right now, my choices are C/C++ with a ton of #ifdef''s in my platform-specific source files, or wait for Mono to be done.
I''ll wait for Mono.