From: Phlip Date: 2008-08-05T23:08:32+09:00 Subject: Re: State of the Onion > 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... -- Phlip