|laziness, impatience, and hubris|
First of all, a bit of background: I work for a company that is a near 100% Java shop. Most of the projects that they've done have had similar requirements to the ones you mention. After a long (well, 6 month) battle (its still ongoing, I assure you), I've managed to convince the software development lead to let me use Perl for a project.
I will also tell you that I do a lot of Java coding, unfortunately, Java and DB jobs are far more frequently found than Perl jobs, at least where I come from :o)
This post is one where I make some points about the differences between Java and Perl.. I'll tell you some other reasons that I used to convince my dev lead that trying out Perl is a good idea.
I know you've mentioned it before, but I can't stress enough on how incredibly useful it is to have a central repository of code like CPAN. That is one place where Java fails to some extent, because to be honest, most Java resources are pretty fragmented. From a software development perspective, there are two immediate advantages, there is a free code base to start on (most useful Java classes and beans cost big bucks), and its all in one place, so no one needs to search the Net looking for the best tool to do the job. So, there are immediate savings there.
The node referred above mentioned code size, and similar sentiments can be found throughout that thread and many others. Java is detail oriented, and well, the more code, the potential difficulties in debugging and maintenance are there..Perl is much better in that it can get the job done faster and smaller.
Performance and widespread use: just mention Slashdot, Perlmonks and other sites with lots of "eyeballs".. Perl has no difficulty handling large volumes of traffic.. and its widely used.
Its been my general observation (I've done and shown small tests to my dev lead) that DBI is generally faster than JDBC.. besides, one big problem that they (the java folk) encountered was that JDBC drivers for ODBC data sources that approached production quality, were expensive as well... so, database access is taken care of..
As for XML, well the project that I'm currently doing requires several large XML feeds to be parsed and thrown into a database. XML::Parser and all the higher level XML modules are readily available, and I've not found Java equivalents for all the diverse XML related modules found on CPAN.
So, in short, what I did with my project lead was ask what Java could do that Perl could not... and the answer is: not much.. Yes, Java has certified, standardized APIs and reams of documents supporting. Yes, Java is much further along threading than Perl is... but that is balanced by cost effectiveness, equivalent or better speed, and most times, much faster time to deliver (I'm betting that you're more productive than any two average Java programmers, even on a bad day ;o)
Summary of my long ramble:Perl is cheaper to use when considering the bells and whistles needed for a production system, faster to code, equivalent or better than Java at almost all jobs that you want to do.
Edited 2001-04-16 by Ovid
In reply to Re: Client prefers java, but wants to hear a case for Perl