Beefy Boxes and Bandwidth Generously Provided by pair Networks
Pathologically Eclectic Rubbish Lister

Re^2: What's wrong with Perl 6?

by varian (Chaplain)
on May 11, 2007 at 09:04 UTC ( #614851=note: print w/replies, xml ) Need Help??

in reply to Re: What's wrong with Perl 6?
in thread What's wrong with Perl 6?

Corion ++ you hit the nail on the head IMHO !!
Perl6's name implies that it is the next version after Perl5. Now such claim could safely be made if Perl6 largely builds on the syntax and architecture of its predecessor Perl5. However from what I have seen it appears that Perl6 is highly incompatible with Perl5, some very core constructs have changed semantics, all in all it simply is a different language.

Now I will not comment on the quality of Perl6. No doubt it has its merits given the development efforts and the experienced team of developers. It may well be a superior language to Perl5.

The real issue here is that by naming the new release Perl6 it degradates its predecessor Perl5 to an 'older now obsolete' release and it cuts off the natural path to an upwards-compatible 6.0 release. Now this may or may not be the intention of the Perl6 development community but it simply does not do justice to the Perl5 achievements, the installed base and happy Perl5 developers. It makes non-Perl programmers weary to start with Perl(5).

My plea would be to rename Perl6 to something else. Call it Perl++ or Perl# if you have it, just don't imply that it the next release that builds upon Perl5. If Perl6 is the best thing since sliced bread then over time developers will jump on that bandwagon anyway.
Meanwhile let's not kill Perl5.

Replies are listed 'Best First'.
Re^3: What's wrong with Perl 6?
by herveus (Parson) on May 11, 2007 at 11:42 UTC

    That objection seems to be grounded in some ignorance (in the technical sense of simply not knowing).

    It is not unheard of for a major version change to favor new/better features over backward compatibility. If I recall correctly, help with smoothing the path from Perl 5 to Perl 6 is part of the effort. Further, while there are significant changes and (one hopes) improvements in the upgrade, the language appears to look Perlish, much in the manner that a Mustang looks like a Mustang, even through multiple iterations of style. There are key elements that say "I'm a Mustang" or "I'm Perl".

    Further, it is not clear that Perl 5 will die anytime soon. One can expect an extended period where both versions are being developed. People with considerable investments in Perl 5 code will tend to be reluctant to jump on the Perl 6 bandwagon right away. Others will simply be leery of change. There will probably remain a considerable mass of interest in Perl 5 for some time.

    I'm grateful that Perl 6 is simply the next major version of Perl. Perl++ or Perl# would be Just Wrong. 6 is the next number after 5. Skipping to 16 would be another piece of "my version number is now bigger than yours" tomfoolery (Sybase, anyone?)

      It's funny that you compare it to the ugly new Mustangs. You're right that it looks Perlish, but looking at this example from this article, my first guess would probably be Ruby or maybe Java (I don't actually use either of those languages) since the only real clue to its Perlness are the variable symbols, which apparently are used opposite to the way we're used to.

      I haven't been programming Perl for that long, but was the change from 4 to 5 anywhere near this dramatic? I know PHP 4 to PHP 5 wasn't a huge deal, and I don't think VB 5 to VB 6 was either.
        It's funny that you compare it to the ugly new Mustangs. You're right that it looks Perlish, but looking at this example from this article, my first guess would probably be Ruby or maybe Java

        That is an example that exhibits explicit features related to Perl 6's OO system. The code is not all that different from Perl 5 (roughly) equivalent one except for some syntactical bits, and the fact that in the latter you should build yourself some stuff that in this case is instead part of the language.

        For "normal" usage, whatever that is, I can't see e.g.

        .say for =$fh;

        as being significantly less perlish than

        print while <$fh>; # assuming $\="\n"

        I would rather say: differently so.

        OTOH I'm glad to be able to do e.g.:

        pugs> sub postfix:<!> (Int $n) { [*] 1..$n } undef pugs> say $_! for ^6 1 1 2 6 24 120 undef

        (As you can see this has the advantage of being able to be already run under pugs - it is also quite about the only thing I can do! :-)

        Even in the example code you presented, though, there are many bits that IMNSHO are very perlish, although also very different from current Perl look and feel:

        • Perl's typical way to do things implicitly on the $_ pronoun, in this case by means of "unary" dot;
        • Perl's dwimmery fashion with 0 < $rank < 10 which is more clear and concise than the full expression comprising a logical operator.

        Also see the following portion of a recent clpmisc thread (link @ GG):

        An almost complete aside from the purpose of this thread, but it comes as a direct result of seeing a little real-world(ish) Perl 6 code posted here.

        I can see that pieces of code like this from above are likely to be quite common in Perl 6 class implementations:

        ($.name, $.rank, $.pref) = ($name, $rank, $cereal_pref);

        Ie. The assignment of batches of named formal parameters to instance variables with the same (similar, the $.pref/$cereal_pref disparity not withstanding) names. And vice versa.

        Is there any shorthand available for this kind of 'batch assignment' from method parameters to instance variables?

        I was thinking along the lines of $.= ( $name, $rank, $pref );

        and say $= ( $.name, $.rank, $.pref );

        Is there any mileasge in that?

        Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
        "Science is about questioning the status quo. Questioning authority".
        In the absence of evidence, opinion is indistinguishable from prejudice.
      Sybase "only" went from almost 5 (4.9.2) to 10, and from 12.5 to 15... MS went from 7 to 2000 :-)

      Though I still agree with you.


Re^3: What's wrong with Perl 6?
by chromatic (Archbishop) on May 11, 2007 at 17:43 UTC

    I don't know what "Perl6" and "Perl5" are, but I sincerely hope that Perl 6 at least will kill Perl 4.

    Update: Elided objectionable part of the post.

      "Perl6" is how you write "Perl 6" if you have searched with a computer much. Most humans don't have a problem with seeing some big difference between the meaning of "Perl6" and "Perl 6"; computers aren't always as intuitive.

      - tye        

        Most humans on this site seem to have no trouble understanding that someone who writes PERL means Perl, though said person will hear about it at least once.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://614851]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others having an uproarious good time at the Monastery: (4)
As of 2021-01-17 01:02 GMT
Find Nodes?
    Voting Booth?