Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer

Comment on

( #3333=superdoc: print w/replies, xml ) Need Help??

++ for coming back :-)

to me, parrot seems frivolous and unnecessary. it reminds me very much of java's virtual machine, which, from my experience seems pretty bad. why should we concern ourselves with making a platform that can run different languages? perl 6 should be about perl, not about a virtual machine

There are lots of reasons people are paying attention to parrot (in addition to the fact that playing with VMs is fun :-)

Most important is probably the fact that the perl5 VM is a god awful mess. It's hard to understand. It's hard to extend. It's hard to maintain. It was a very obvious component of perl that needed a complete re-write.

Personally, I think multiple-language support is a good thing. Writing code in multiple languages is useful, and very few environments allow you to do it in any meaningful way. I talked about this a little bit elsewhere if you're interested. Supporting multiple languages in this way is, to me, a natural extension to Perl's TMTOWTDI attitude.

Also, making the VM more explicit and straightforward makes things like writing JIT compliers a much more practical goal.

Finally, having explicit access to the VM and various compilation phases from perl6 enables you to do really cool things. Not more messing with subroutine prototypes or source filters. You can actually write your own syntax.

(Actually, I'm not 100% on this being in the perl6 goal list - not having to spare time to do more than read the weekly summaries... but it's certainly possible).

the use of . instead of -> and _ instead of . utterly disgusts me. why should this be changed?

Well, these sorts of decision are, to some extent, a matter of taste. However the changes were not made arbitarily. Three good reasons come to mind.

  • Typing two characters all the time when one would do is a waste of time and space.
  • The fact that practically every other language on the planet uses the "." notation for this sort of thing adds a pointless comprehension barrier for people who switch between languages.
  • I believe (not 100% on this) that perl6 changing so that the syntax for method access and direct attribute/field access is the same (so $foo->method and $foo->{field} would be written $foo.method & $foo.field). This is a very good thing since it allows you to change your implementation without changing your APIs. Sensible languages like Eiffel have been doing this for years (see this article for more info on why this is good.)

I remember similar arguments when "::" replaced "'" as the package separator. With the exception of Klingon, I don't think anybody worries about it any more.

If you're interested (and have the spare time) I would spend some time wandering around the perl6 mailing lists. There's a lot of interesting stuff, and it will give you more background on why certain decisions have been made.

Personally, from what I can see so far, perl6 is going to provide me with many of the features that I have sorely missed in perl4 and perl5 (proper OO, ability to write your own domain languages, simple currying, etc.)

There is also the fact that so much of perl5 stays exactly the same in perl6. Only the changes get talked about.

While I don't agree with every design decision that's been made the changes are certainly not being made just to annoy. If I had more of that mythical substance known as "spare time" I would contribute to the implementation effort (and get some input to those designs decisions I'm not 100% happy with). If you have the inclination, and feel that you have something to contribute, maybe you should consider it.

s/Two good/Three good/

In reply to Re^2: NO PERL 6 by adrianh
in thread NO PERL 6 by batkins

Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post; it's "PerlMonks-approved HTML":

  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.
  • Log In?

    What's my password?
    Create A New User
    and a log crumbles through the grate...

    How do I use this? | Other CB clients
    Other Users?
    Others studying the Monastery: (6)
    As of 2018-06-19 11:07 GMT
    Find Nodes?
      Voting Booth?
      Should cpanminus be part of the standard Perl release?

      Results (113 votes). Check out past polls.