Beefy Boxes and Bandwidth Generously Provided by pair Networks
Welcome to the Monastery
 
PerlMonks  

Re^2: NO PERL 6

by adrianh (Chancellor)
on Dec 09, 2002 at 17:40 UTC ( [id://218597]=note: print w/replies, xml ) Need Help??


in reply to Re: NO PERL 6
in thread NO PERL 6

++ 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/

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others chilling in the Monastery: (2)
As of 2024-03-19 10:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found