My biggest problem with java is not the language itself. Just as perl, it serves a market, and the language is grown-up enough to be useful.
What makes me hate java to the bone has nothing to do with the end product: what the customer will see, but is all about developer time.
- (Big) java projects seem to need an IDE (Eclipse or NetBeans mostly). These have their own quircks and shortcomings (a lot). They also have their own key bindings that most likely are very different of those of your favorite editor. I'm currently forced to use Eclipse for java development, and I don't know if the designers of the UI ever programmed themselves. I use more time searching for functions and features than being able to actually produce code. Netbeans works much better for me, but neither has good integration with git and Eclipse integration with svn is much better than NetBeans' (but still sucks big time).
- CPAN might cause some administrators headaches, but java libraries (.jar files) and version requirements are even worse. Some people do not care about compatibility at all. Neither forward not backward. To make a big project work, it seems to be necessary to use maven, which is another reason to use Eclipse, which seems to have better maven integration than NetBeans (or my colleages refuse to make it work for NetBeans).
- The resulting applications (.jar, .war) are huge compared to perl scripts.
- You cannot edit a jar that is broken at a customers site when dialing in. A perl script is often easy to fix.
- It eats developer time. I can write something in perl in 30 minutes what will take me a day in java. And when I hit a problem in one of the used modules, I can fix that myself, submit a RT ticket with the fix, and be happy to see a new moduyles released soon. Fixing a jar error is close to impossible.
Performance-wise, java seems to be able to match perl in many aspects nowadays. You'll probably be requiring java6 and a lot of memory, but database access is well supported from java's point of view.
I agree that client that want java over perl for no reason are stupid. There are however enough reasons for some client to choose java. There is a perfect tool for every problem, and that tool is not always perl (but it quite often is).
Enjoy, Have FUN! H.Merijn