Slashdot Mirror


First Perl 6 Book is Out

prostoalex writes "O'Reilly Publishing presented Perl 6 Essentials, the first book to be dedicated to Perl 6, at the beginning of this month. Looking at the table of contents, it hardly looks like a valid replacement for Llama or Camel books. Chapter 1 is available online. The whole book is available to Safari subscribers." I'm sure we'll review it sooner or later.

16 of 75 comments (clear)

  1. PERL is dying! by Anonymous Coward · · Score: 3, Funny

    PERL is dying, just like BSD. That is why no one is posting on this thread.

  2. Perl 6 is a mistake. by Anonymous Coward · · Score: 4, Insightful
    I've been using perl pretty much constantly since the Pink Camel, and believe me, Perl 5 is an extremely good language for quick scripting things. That's what it was designed for. Sure, you can do big projects in it, but it's not exactly ideal. Recently I've started using Ruby as well, and I intend to move my department over to it instead of wasting time with Perl 6.

    One of the goals of Perl 6 is to make non-trivial projects possible. That's good. The way it's being done is bad. Perl was once a lightweight, extremely flexible language. Now it's become a huge ugly monster. People wanted OO, so a nasty hack was bolted on top to allow some semblance of it. Now this nasty hack is being expanded. Sure, the code's different, but the basic form is the same. Kludge upon kludge upon kludge; I'd much rather have a nice, clean, pure language (and not one with loads of irritating whitespace thank you very much).

    The same goes for the syntax. All the switching between $, @ and % is really irritating (ask a newbie how to get at the length of the keys array of a hash inside a hash, for example), and the changes proposed for 6 are just making this worse -- it seems that Larry, in his infinite wisdom, wants to prefix every data type with a different hard-to-type character. Perl was only designed for the three data types, and adding more is a mess.

    Perl 6 is a complete rewrite, but it keeps all the mess which has accumulated over the previous versions. This is not good. Sure, my const int $var = 27; may look neat (in the same way that, say, Pascal does), but $var isn't entirely constant, or entirely an integer, it's just a hack which makes it sort of behave like one. The whole thing is an exercise in pseudo-computer science masturbation with little real purpose except to please the managers who dislike the one thing that makes Perl special.

    On a similar note is regexes. I'm an avid fan of regular expressions simply because a nondeterministic finite automata is far more flexible than linear code. However, Larry must have been smoking that cheap $2 crack when he wrote this. Does he want Perl 6 to be flex or something?

    I won't be going on to use 6. It's a nice idea, but it's completely unnecessary. It won't make large projects any easier to manage (the language is still, at heart, an almighty hack -- an impressive one, but still a hack). It won't make OO any cleaner. It won't make development any faster. To put it bluntly, Perl scripts will still look less beautiful than our friend Mr Goatse. I'd prefer to use a language which has always been pure synthesis of science and engineering, not some half-baked imposter.

    Perl 6 will be nice, but I'm guessing it will be the end of Perl. It can't do what it wants to do whilst still being based upon a nasty mess. There are now other options, which provide all of Perl's power and none of the mess. Sorry, but *BSD ^H^H^H^H Perl is dying. Larry is buggering it up the ass without lubricants, just like Shoeboy is doing to Larry's daughter.

    1. Re:Perl 6 is a mistake. by vcv · · Score: 3, Interesting

      >> Sure, my const int $var = 27; may look neat (in the same way that, say, Pascal [lysator.liu.se] does), but $var isn't entirely constant, or entirely an integer, it's just a hack which makes it sort of behave like one. The whole thing is an exercise in pseudo-computer science masturbation with little real purpose except to please the managers who dislike the one thing that makes Perl special.

      The reason for this is because if you tell the interpreter what sort of data it is, it helps the interpreter do more optimizations with that data. Sure, it's not truly an integer, but at least you're helping the interpreter out but telling it how it can deal with the data.

      >> Perl 6 is a complete rewrite, but it keeps all the mess which has accumulated over the previous versions.

      Of course, there is a lot of features in Perl. 200 ways to do one thing (which couldnt be considered a bad thing), but it's actually really cool, because it lets you stick to your own style more than other languages. Face it, perl should not be used unless you know what you are doing with it. It can get ugly, but it's powerful and can do certain tasks amazingly well, and better than any other language.

      Sure, it's bloated.. but the way it's being designed should make it so the bloat doesn't affect the speed or power.

      And you won't truly be able to appreciate Perl (especially 6), until you learn all the shortcuts [features] (not all, but..) . There is a lot to learn about the language before utilizing it's full power, but once you master it (if possible with perl), it becomes really fun.

    2. Re:Perl 6 is a mistake. by cakoose · · Score: 2, Insightful

      So few words, so much ignorance...

      String -> '(' String ')' | ...

      try doing that with a regex

      Try doing that with an NFA, dumbass. An NFA cannot detect matching parentheses. A pushdown automaton can. This should be pretty obvious since your example is a grammar production of the context-free grammar style. PDAs are related to CFGs like NFAs/DFAs are related to regexes (though the relationship isn't as clean in the former case).

      Regexes aren't NFAs but regexes can be used to describe any regular language (and only regular languages) and NFAs can recognize any regular language (and only regular languages). They are "equivalent" in terms of theoretical computational power (the traditional definitions state that regexes generate languages and NFAs recognize them). Also, DFAs can recognize all and only the regular languages.

      However, I still don't understand why the grandparent poster said:

      I'm an avid fan of regular expressions simply because a nondeterministic finite automata is far more flexible than linear code.

      If "linear code" means non-branching code, then I guess that that's true. What I don't get is how he/she is restricted to linear code. Regular code is turing-complete and therefore much more powerful than regular expressions. Regular expressions are more compact and map better to certain problems, but they are provably less "flexible".

      As a side note, I think that Larry Wall suggested calling them "patterns" instead of "regexes" because they are more powerful than regular expressions (though I'm sure the old terminology will still be used). This is fully described here.

  3. Table of contents? by jmd! · · Score: 2, Funny

    Looking at the table of contents, it hardly looks like a valid replacement for Llama or Camel books.


    Wouldn't you instead need to see the cover to determine that?
  4. not *intended* to replace the camel book by josephgrossberg · · Score: 5, Informative

    "it hardly looks like a valid replacement for Llama or Camel books"

    It's not supposed to be. Just as they have conventions for the books' color (e.g. Perl blue), O'Reilly and Associates has conventions for the titles.

    * "... Essentials" means an overview of what's new.
    * "Learning ..." is a discussion and tutorial on a topic, intended for beginners
    * "Programming ..." is the same, but for intermediate and advanced users
    * "... Cookbook" is a series of problems and their solutions
    * "... in a Nutshell" is like a language reference
    * "...: The Definitive Guide" is a combination of all four
    * "... Pocket Reference" is a shorter version of the above

    1. Re:not *intended* to replace the camel book by ClosedSource · · Score: 3, Insightful

      You forgot ".. Annoyances" which is purchased by people who don't use the product described in the book.

  5. Re:Ruby has its own design mistakes by SewersOfRivendell · · Score: 4, Informative
    I'd move to Ruby right now, except it doesn't support Unicode

    That's not a "design mistake", it's just a major feature that hasn't been added yet. This will be remedied in a future version of Ruby.

    A "design mistake" would be something error-prone and impossible to fix, like Python using indentation as part of the syntax.

  6. Re:Cart Before the Horse by dubStylee · · Score: 2, Insightful

    No, it's more like "show how the cart is being designed so you can help build it and/or begin to use it with the perl6ish pragma in perl5".

  7. Re:Ruby has its own design mistakes by AceMarkE · · Score: 4, Informative
    Actually, I believe that as long as all the lines at a given level are indented the same, the actual amount of indenting is irrelevant. Example:
    for(1):
    for(2): # indented two spaces
    for(3): # indented five spaces
    for(4): # same as for(2)
    for(5): # note different than for(3)
    The accepted standard is 4 spaces per indent. And really, most programmers tend to write something similar anyway, Python just forces you to at least make an attempt at making the code readable.

    Mark Erikson
  8. Chapter 3... by sICE · · Score: 2, Informative

    is there...

  9. Re:Book deals too much with assembly by chromatic · · Score: 2, Informative

    OOP hasn't been decided yet. That's the next Apocalypse the design team is considering. Just about everything known about Perl syntax is in chapter 4.

    There are also plenty of people who'll program Parrot or IMCC bytecodes. We're the people who are implementing Perl 6, Ruby, Python, Lua, BASIC, BF, Befunge, Scheme, Jako, Cola, Perl 5, and Perl 1 on Parrot.

    If you're expecting this to be a new verison of the Camel or the Llama, you'll be disappointed. It's not. It's aimed at early adopters, people who are curious about the state of the project, and people who are interested in developing Perl 6, Parrot, or another language on top of Parrot.

  10. Re:Ruby has its own design mistakes by smallpaul · · Score: 2, Interesting

    That's not a "design mistake", it's just a major feature that hasn't been added yet. This will be remedied in a future version of Ruby.

    First, it hardly matters whether it is "just" a design mistake or a missing feature. If he needs the feature and it isn't available, he can't use the language. Second, Unicode tends to have all kinds of implications deep into the implementation of a language. They touch reflection, language syntax, regular expressions, file system, pickling, I/O etc. You can call it "just" a "missing feature" but it is one big feature. I would be surprised if Ruby got proper (i.e. integrated) Unicode support before the pretty major rewrite that will also add native threads.

    A "design mistake" would be something error-prone and impossible to fix, like Python using indentation as part of the syntax.

    Yeah, many people who have not tried it say that. Turns out that it is less error-prone because it eliminates a whole class of bugs that result from parens that do not follow the indentation.

  11. You guys are missing the point by yaphadam097 · · Score: 2, Interesting

    From the abstract it is clear that this book is intended to describe the Perl 6 project including the reasons for rewriting the language, the desing philosophy, some of the roadblocks along the way, etc. It sounds like a real interesting read for those who are interested in the process of designing and implementing a full scale computer language, regardless of how you feel about the particular results.

  12. Re:Ruby has its own design mistakes by metamatic · · Score: 3, Insightful

    That's the problem, though. There's no such thing as "standard" tabs.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  13. Re:I'm just wondering... by gnat · · Score: 2, Insightful
    If you're going to have thoughts like these, could you please keep them to yourself? Some of us appreciate Allison, Elaine, Elizabeth, Kudra, and the other women in Perl for the great things they've done. I would like them to stay around and do more great things rather than be driven away because every time one of them comes to a conference she's nervously looking over their shoulder wondering which guy is the anonymous coward thinking about her boobs. Comments like yours set up a totally creepy environment for women.

    And if Allison doesn't post in this thread, it's not because she's thinking "great, men are finally noticing women's bodies and commenting publicly on them". It's because she's off working on open source.

    If anyone wants to talk to me about this at OSCON, I'd be happy to explain more forcefully just how much this coward's comment pisses me off.

    --Nat