Slashdot Mirror


Larry Wall on Perl 6

Nate writes "Linux Format magazine has an interview with Larry Wall, the eccentric linguist and coder behind Perl. Larry discusses some of the new Perl 6 features ready to rock the world, and if you're not planning to move from Perl 5.8, he has a few musings on that too."

6 of 265 comments (clear)

  1. Perl? Are you kidding me? by mumblestheclown · · Score: -1, Troll
    1999 called and wants its programming language back.

    Sure, some fanboy is going to mod me as a troll or what have you, but the fact is that perl is well past its sell by date. And, not without reason. While it, like anything, can be useful under the right circumstances, the fact is that Perl syntax is laborious and inconsistent, to say the least. Hard as this may seem to believe, the world has moved on to the conclusion that programming languages should be EASY to read and run FAST, not HARD to read and run slow. Or, at the very least, EASY to read and run SLOW is good enough in some circumstances to.

    I have absolutely no doubt that perl is comfortable to the few of you who still use it daily. The rest of us simply recognize that it's an awkward language by gauging the amazingly short time period between having to look up THE SAME BASIC THINGS over and over again. Basically, perl is like Emacs or the CLI: it's a cult.

    Chop() belongs on the scrap heap of history with malloc(), as far as simple end-user-focused programs go.

  2. Re:Perl? Are you kidding me? by Chysn · · Score: -1, Troll

    Blah, blah, blah. I hear Perl is a write-only language, too. And that it looks like executable line noise. And it's well past its prime and no one uses it any more. Python, blah blah, Ruby on Rails blah blah blah. Is there some sort of script that automatically makes this post whenever the word "Perl" appears in a Slashdot headline? Yeah, and that script is probably written in Perl.

    --
    --I'm so big, my sig has its own sig.
    -- See?
  3. From the article by Kj0n · · Score: -1, Troll

    In Perl 6 we actually give the programmer control over the individual grammar rules and even sub-rules, so that you can replace little bits and pieces of the grammar.

    Cool! Perl 6 code is even less readable.

  4. Re:Perl? Are you kidding me? by FireBreathingDog · · Score: -1, Troll
    "In a world without walls and fences, who needs Windows and Gates?"

    In a world with Java and Ruby, who needs Walls and Van Rossums?

  5. Re:Grammatical mutability... by mslinux · · Score: -1, Troll

    "Perl 6 code will be the most unreadable Perl ever."

    You mean more unreadable than it has been? I'm sorry, but that's not possible.

    Perl is barbaric. Barbarians use Perl.

  6. What about ruby? by goombah99 · · Score: 0, Troll

    Isn't ruby the modern successor to perl and not perl 6? Why will perl 6 be better?

    I'd also like to take a pot shot at python. My feeling about python is that python is a much better programming language than perl for SOPHISTICATED programs. But in general perl is actually a more cleverly conceived langauge with far more available power. Many of the criticism people lay on perl in comparing it to python are either naive or an artifact of python's youth and thus lack of cruft. The latter is changing as python matures.

    Here's examples of what I mean by naive criticisms: Two things I think standard newbie criticism of python and perl get exactly wrong are whitespace and variable prefixes ($@%#\).

    Pythns white space it truly annoying at first. Then you begin to see why it's such a fantastic innovation. Sure every good program has a good set of indenting rules. The trouble is despite being good, they are different. It's hard to read someone elses code with precision. With python, everyone follows the exact same rules. I can easily scan any code I find and follow the scopes, even across pages on the screen. It's truly effective in practice and one of the best things about the language.

    Perl is said to rely too heavily on symbols like $,%,@ that coders think are unnessecary and dispensed with in python. Wrong. If you actually do the count you will find that python has more special gramatical signals than python! really, try counts. lets see just to name a few there's : and () and [] and {} and @ and 'r' and ',' ... anyhow when you are done you find there are more than in perl. Worse they are used ambiguously unlike in perl. For example the use of [] in perl only means an array lookup and someone reading the code can tell this. Not true in python. Likewise for () and ',' which have both passive uses as separators and active uses as gramatical modifiers. IN perl these have one meaning.

    In perl I can visually distinguish verbs and nouns (functions, commands and variables) by their clear prefix declarations.

    Part of pythons cleanlyness comes from syntactic sugar. but under the hood it's objects are implemented the same way that perl's objects are: hashes (dir dict) or pseudo-hashes(slots) are
    and part of it's cleanliness comes form missing functionality: for example: references in perl that are lacking in python. e.g.
          for $i (@e) { $i +=1 } # $i is a pointer into @e's memory
          for i in e: i = i+1 # this code does nothing at all since i is not a pointer.

    As python matures and more and more idiomatic expressions enter (like generators expressions, or list iterators) or hash methods get extended ( .get() has defaults added to it) things get complicated and less clean.

    Perl has be criticized on this account since some of it's functions canvary depending on how they are called (e.g. split), and you have to memorize the forms. but as python iterates these same inconsistencies creep into it.
    for example, some things in python produce R-values and some do not but you can't know except by memorization (.sort and .rtrim for example). Ruby solve this nicely in a perlish fashion by introducing the character ! to differentiate in-place and r-value operations.
    In python sometimes things are short circuit expressions and sometimes they are not. for example .get() with a default actually evaluates the default value if it's a function rather than short circuiting it. On the other hand the "or" function does short circuit the evaluation when the right hand term will not be used.

    So anyhow I'm not saying python is a bad language. I use it and love it. I'm saying that it gets a bad rap from people who can't think in perl. So don't flame me on that account.

    Ruby seems so clean up the complains people have about perl while preserving it's advantages over python. so why do we need perl 6?

    --
    Some drink at the fountain of knowledge. Others just gargle.