in reply to What does "overdesigned" mean?
in thread OT? Pragmatic Perl

You are correct in pointing out that the word "overdesigned" doesn't actually mean what it says. Mostly it's just an epithet that people fling at any interface that does more than they're interested in at the moment. More specifically, it's how you describe an interface that, by trying to make too many hard things possible, ends up making easy things hard as well. In this second sense, the interface is "overdesigned" in the sense that it would have been better (for typical tasks) if the designer had stopped adding features earlier.

Perl 6 is certainly "overdesigned" in the first sense. Indeed, every version of Perl has intentionally been overdesigned in that sense. However, it is the second sense that we worry about in the design of Perl 6. Only time will tell if we've worried about it enough that Perl 6 will be perceived as not just overdesigned, but also elegantly designed. There are a lot of elegant ideas in Perl 6--the main question is whether there are too many of them, tied together inelegantly.

People keep trotting out the phrase "second system effect" like some kind of cargo-cult mantra, not seeming to understand that we already know about second system effect, and that part of the reason Perl 6 is taking so long is precisely because we're taking the time to try to compensate for it. That's why our slogan is "Second System Syndrome Done Right!" Of course, it could be one of those things that gets you recursively even if you take it into account, like Hofstadter's Law. But we try to take that into account too, for what it's worth. :-)

Replies are listed 'Best First'.
Re^2: What does "overdesigned" mean?
by chromatic (Archbishop) on Sep 25, 2004 at 06:06 UTC

    There's some merit to the idea that Perl 1-4 was the first system, Perl 5 is the second, and Perl 6 will be the third.

      I know nothing about Perl 1-4 since I started learning it from v 5.6.x onward. That said, and from what I have learned about and from Perl, from many of you wise monks, and from reading various off the Wall comments, Perl is closely tied to natural language principles. An odd thing, if you ask me, because Perl is not a natural language. I have never yet said --
      pass(my $potatoes) while ("I am hungry");
      Still, Perl is good, and, as a result, messy. Apparently not clean and elegant like Python, or taciturn like C. But I like that different things look different ($, @, %). I have seen so much of PHP code where variables are named --
      $fruits; $arFruits; $hsFruits;
      So much easier to just acknowledge that different things should look different.

      My point is, Perl is messy and inelegant (by several definitions), but that is a part of the design. It has been thought out deeply, it has been designed a lot ("overdesigned" has a negative connotation). And by that virtue, it is very elegant at solving problems. I work with a couple of other programming languages and I despair making the simplest constructs in them that would be one-liners in Perl.

      It is really hard to make something do a job well. Perl is like grease... messy and gooey, but it best lubricates mental as well as computing thought processes.

      Dare I say that if Perl 5 is the "second system", it actually disproves the second-system effect?

      Update: Made trivial mods to make the post more readable.