Re: Java viable for cross-platform GUI applications ?
Gregor Hoffleit wrote:
> Certainly a silly question for this list: Do you think Java is currently
> a viable platform for cross-platform, shrink-wrap GUI applications ?
> I.e. if you had a proprietary consumer application for Windows and MacOS,
> and you were looking for a strategy that also worked for Linux, would
> you consider re-implementing the application in Java, or would you stick
> with conventional tools like a cross-platform toolkit (like wxWindows or Qt),
> a Wine/Winelib solution, or a single toolkit for each platform.
> Apart from our (Debian's) license problems with Java, I have the impression
> that the big other distributions don't really support a Java Runtime
> Environment, cf. the way they support GNOME or KDE applications.
I've been developing/maintaining a major app (1000 classfiles) for the
electrical industry (a very conservative customer market) in Java since
1996. I ditched NT early on (within a year) once Java support matured
enough on Linux to be useable. We still do all Java development
exclusively under Debian, use Debian for Samba file serving,
firewalling, the web site, mail serving, etc. Most of the rest of the
company runs MSWindows 95, 98, or NT; all of our customers deploy to
these as well.
Our product is not shrink-wrapped; it requires extensive configuration
by our staff. It includes a custom deployment mechanism (similar to the
debian package system, funny how that is).
We use Swing for almost all our GUI work; the only normal AWT stuff we
use is for compatibility with touch-screen data entry fields.
In general, not only does Java work great cross platform, I don't even
bother testing my app under windows before sending it to our QA guys
(unless I'm actually interacting with something under windows, e.g. ODBC
sources or AutoCAD).
The only cross-platform issues I've had to deal with have mostly
involved file names and case sensitivity. For example, all path
configuration in my system is stored with forward slashes, and I convert
these on the fly to appropriate syntax with my own createFile(path)
methods. This wouldn't be a problem if an installation only ran under
windows or linux, but if you set it up under windows sometimes the
configuration wouldn't work under linux due to these file name
differences. Also, case sensitivity can be a problem with configurations
(e.g. trying to load a datafile from a preset path).
All in all, very little to worry about.
The current crop of nonfree linux JVMs are very strong, and hopefully
the free ones will get stronger over time. We currently use IBM's JDK
(1.1 and 1.3) for linux, IBM's 1.1 and Sun's 1.3 JRE for windows. I
cannot currently recommend the free JVMs for serious GUI work at this
Now, deployment is another matter. We deploy a JVM with our product;
both IBM and Sun JREs require no installation under windows other than
copying or unzipping the files, and writing appropriate batch scripts to
do the classpath etc.
I would not want to deploy a Java app with no knowledge of the
destination JRE or its version; I would certainly provide a known good
JRE as an installation option.
Also, installation under windows and linux are very different things.
I've not been impressed with any of the cross-platform installers.
Paul Reavis email@example.com
Partner Software, Inc. http://www.partnersoft.com