|Perl Monk, Perl Meditation|
Gee, just goes to show me that you should never say anything in public that you don't want seen in public. :-)
Just to expand on my basic point. There is a fundamental trade-off between bureaucracy and individual productivity. However bureaucratic constraints are critical to having productivity scale across many interacting people. The trade-off I mentioned in language design is therefore seen across a broad range of human activities. In languages it shows up as organizational work. Declarations that must be made. Interfaces that must be defined. Things like type-checking. Every one of these slows down the individual programmer, but helps scaling to larger programs with more people.
Perl and Java are at opposite ends of that spectrum. Intentionally so. This is a statement of fact, which can be backed up by looking at specific design decisions, quotes by people who like the languages, and quotes by people who designed each language. Saying this is not a statement of bias.
It is important when making decisions to be able to recognize this kind of factor and decide accordingly. Choose the right tool for the job and all that.
Now for the flame-bait.
There is a flip side to that saying which is less often brought up. In addition to choosing the right tool for the job, you must choose the right job for the person. And what that job is depends for me on what the tools I will need to use are designed for.
Java is a language that has been designed (and sold) partly based on the PHB dream that you can replace programmers with interchangable monkeys. Perl by contrast is well-designed to take on tasks where programmers must be allowed to be competent and think for themselves.
So even though I agreee that there may be many jobs for which Java is a better fit than Perl, I prefer to work on jobs which Perl is a good fit for.
Besides which I have read The Mythical Man-Month, I notice random statistics, and I take them into account for my life. The relevance of this takes some explanation.
For obvious reasons, a disproportionate share of programming jobs out there are in larger projects. However the larger the project, the more likely it is that it will be a disaster. For projects that cost over a million dollars, this outcome is far more likely than not. Having been near (though luckily not really in) one multi-million disaster, I have little desire to be near or in another.
Therefore even while I can cheerfully explain all of the ways that Java is better for a large project, I would just as happily not go near such projects. And again I find that I prefer being around the kinds of jobs which Perl is used for. Things involving a small team of good programmers, taking on projects of a managable size...