I agree with you that Perl is not always the right tool for
the job. I even agree with you on some of what its
weaknesses are.
However I have to disagree on your belief that somehow other
languages are necessarily better. My opinions have come up
before. For instance I state them at length in
RE (tilly) 1: Java vs. Perl from the CB. More (IMO good) points at RE (tilly) 3 (disaster): Java vs. Perl from the CB.
There is no silver bullet for maintainability, and indeed
it is a sore spot for the whole industry.
That said, the kid you see breaking a Perl project will
cause pain on a Java project as well. IMO the only good
ways to use incompetent people are move them to someone you
don't like, put them on data entry problems where you don't
really care what they do, or invest the time and energy to
make them competent. I prefer the last option but YMMV.
But I don't consider it a good criticism of a language
that it gives people who shouldn't be given responsibility
the ability to cause damage if they are given that
responsibility. To me that is, "Well, duh. Don't give
them responsibility." But I would diss a language
for making competent people unproductive...
Now, Perl is not right for all problems. I agree that large
OO projects are an example of a problem it is bad for.
Another is complex GUIs. Another is anything where tight
space/time optimizations matter. (Just ask jcwren for
more on that.) So learn its strengths and weaknesses, then
use it where it fits.