First of all, I would like to introduce myself. I have been watching the
Perl6 language ideas for some time with growing interest. I am not a great
programmer, more like a hobbyist who sometimes applies his programming
skills at work. And here are my views on this very interesting topic ;)
> Simon Cozens wrote:
>> Once again we're getting steadily closer to inventing Ruby.
> Agreed, but I don't think this is necessarily a Bad Thing.
Now, I do like Ruby. And I definately don't see this as a Bad Thing.
In my opinion, Perl6 should have all the best features from all the best
languages ;)
> myhash.keys.sort.join(', ') # valid in both Ruby and TT
> Of course, this is semantically no different to the Perl 5 equivalent:
> join(', ', sort keys %$myhash)
The first one seems to be more readable to me, although I am used to using
the second one. I think it would be easier for new people to learn (and to
use) the first case rather the second one (I am taking a newbie point of
view here ;)
> I think both are equally valid and should be supported, if possible.
TIMTOWTDI revisited. I am not sure how Larry stands on thsi fundamental
Perl paradigm in Perl6, but I have grown accustomed with TIMTOWTDI and
that's why I like Perl.
> The sticky issue is how to pass a block to sort, map, grep, etc.
> Well, if we can't come up with anything better than explicitly passing
> a block as an argument, e.g.
> $hash.keys.sort({ ... }).join(', ');
This is not as bad. At least it seems to me quite natural and easily
understandable.
> If you end up writing pathological cases where you're passing lots of
> blocks as arguments, then perhaps it would be better written in a
> regular Perl 5 right to left (nested), or even a mixed style.
> join( ', ', sort { ... } $hash.keys );
Now this it where things start to get weird, of course. Lots of
possibilities for obfuscation, but again, Perl5 has been famous for these
kind of things.
Petras Kudaras