My take on java or c++ is java, if you want, as I do,
crossplatform compatibility and portability and
user interfaces. If you want speed and basic portability
w/o UI or standard network, database interfaces and other libs,
c++ is great. If you have extra programming time, you can
combine both, using each one's strengths.
I've had significant problems with c/c++ portability
across Unices, let alone other oses, even with
For any application that will be
used by a range of bioscientists, keep in mind there
is a large subset using MSWindows and MacOS, and a small
subset (perhaps growing w/ Linux) using Unix/XWindows
on the client side. When I gave up on C++ for bio-apps
a few years back, it was because I couldn't get past
the many hassles for writing/debugging platform-independent GUI
programs for that language. The toolkits for C++ GUI I've seen (and
those I've heard of so far in this thread), generally don't run
well or on all of MacOS + MSWindows + Xwindows. Java apps do run
well on all of these systems.
Perl is a really handy language, but I've never
seen a perl-GUI application (not that they don't exist, but
it is mainly engineers with XWindows/Tk/.. who use them).
Also I have problems developing complex software in Perl -
it still seems to have a large flavor of old Basic's
messiness to it.
On the other hand, I tend to use several programming
languages and tools these days to do a job. One doesn't
do it all. Java lacks by default handy native system interfaces
speed and useful bits found in other languages (perl regex
comes to mind). This lets you run on many systems, or
you can sacrifice easy portability with with native code interfaces.
-- gilbertd at bio.indiana.edu