Admitted, but it’s more a fault of the language proponents than of the
language itself. I don’t really have a dog in this fight; it just
saddens me to see Perl6 being dismissed for social rather than
technical reasons.
Here’s how to diss it for technical reasons.
Perl was a pivotal language. Unix, GNU, and Linux would not be where
they are
without it - not least because of the amount of string surgery their
configuration files need.
However, there’s a difference between adding new features to a system
and
patching up flaws in its original design. In astronomy, the latter
technique is
called “adding epicycles”.
If you plot the relative course of planets around the Earth - the way
they
appear to move over time against the backdrop of stars - you will
occasionally
notice Mars moving retrograde.
This is because you should be plotting Mars’s absolute motion around the
Sun. To
plot it around the Earth, you must “add an epicycle” to Mars’s presumed
path -
an extra loop it occasionally takes. Then, because of elliptical orbits,
the
more accurately you plot Mars’s motion, the more small epicycles you
must add.
That’s why “adding epicycles” means adding patches and compromises to
maintain a
bad design.
Sometimes adding new language features is a form of heliocentrism. For
example,
C++ had no duck typing, so Bjarne Stroustrup added it by inventing an
entirely
new notation - templates. Then the C++ authors added lots of extra hacks
- such
as Koenig Lookup - to make templates usable. And now that we suspect
duck typing
works better with less static typing, C++ is stuck in a rut.
Note: Ruby will be too, someday, when we learn what a better language
could look
like. However, until then, we can do things with Ruby that Perl cannot
yet do.
Larry Wall’s effort to defeat the mighty Perl 5 is an attempt to leap
ahead of
younger languages, by subsuming all their improved syntaxes in one swell
foop.
It might work, but Perl literature will still resemble line noise…