I think people too often get religous about this particular discussion - myself included.. To decide what language to use, you should evaluate the strengths and weaknesses of the language in relationship to your understanding of the language and the task at hand..
That being said, the sheer amount of publicly available libraries, source code, and APIs that are available for Java make it really hard to advocate another language. The only ~good argument I've heard against it is in the case that you need to absolutely maximize the efficiency of the applications that you write, in which case people still manage to get the best performance out of pure C. In personal experience, these problems are rare - and usually are quite easily solved with additional cheap hardware.
I've never really understood the argument that Perl is somehow easier than Java.. Its just as easy to get a simple unsharable, one off file parser written in Java as it is in Perl - (it will just be longer and much more understandable). And of course, if you ever want to get to the point where you either share your code with another pary or actually produce an application for a non-programmer user, I don't think a better solution exists than Java.
The anti-Perl sentiment here is the legacy of my first three years experience in bioinformatics.. - much of which was spent attempting to get other people's perl hacks to run .. This left me with a bitter feeling that there must be a better way.
Java is better.
BUT, web services are better than Java, because they let you write in whatever language you wish but still interoperate seamlessly with other code written in whatever language the authors like. High time for a service oriented architecture to penetrate into bioinformatics.. See the
BioMOBY and
Taverna projects for active work in this area of bioinformatics.