I'm going to post my general feelings on Apoc 3. Rather than just
post up about things I don't like, I'll also mention what I do like
and what I just don't understand. If I don't mention a piece, it
usually means I didn't really have much feeling one way or the other.
First, a general observation. Perl 6 is looking more like Ruby every
day. (Language thievery)++
Second, I like the way everything-as-object is being unobtrusively
weaved into the language.
Binary and unary dot:
This makes me *very* happy. This is probably the best thing I've
heard all day.
I've been playing with Ruby, which has a similar feature. @foo is an
object instance variable. Inside a class definition, foo() is a
object method call on the current object. Outside it's a class method
call on the current class. Works out very nicely under the fingers.
For anyone that writes a lot of OO code, the pleasure of not having to
write $self-> (or $self.) six thousand times a day is well worth the
trip.
Unary * and list context:
This is a change for the better. The specifics of the * syntax is a
little odd, but being able to pass two arrays into a function without
fumbling with prototypes will be welcome.
Concatenation:
I couldn't care less what string concat is. God, let's argue about
something more interesting.
Binary ;
This worries me. Giving ; two meanings makes basic language parsing
harder, which would be fine if there was a big payoff, but there's
not. Just making shorthand for [[1,2,3],[4,5,6]] doesn't seem worth
it. What am I missing here?
Trinary ??::
I'm rather surprised that I have no problems with this.
Binary //
The analogy to || is probably a bit too clever. My first reaction
was it's some sort of weird division operator. But it's servicable.
Filetests:
The most interesting thing I see here is the embracing of the
everything-as-object feature and seeing its first real payoff to make
neat DWIMery possible.
tr///:
I never thought I'd hear Larry use the term "sucky"
Lazy lists:
Neat! It'll be hell to make them work right, but neat!
Hyperoperators:
I sort of understand it, but don't really grok it. I can sort of
thing of ways it might eliminate the need for a few maps and
foreaches. Damian, might I request some clarification in Exogenesis?
Polymorphic comparisons:
I'm firmly with Larry here. I have oogy feelings about $foo == $bar
doing different things depending on the value of $foo and $bar. I'm
also a more than a little afraid at what 42 == "forty-two" should do.
Backtracking:
Ok, I don't get it at all. Damian, clarification?
=~ and 'apply-to':
"But by and large, I think I'd rather see: @foo.grep {!m/\s/}"
Yay, CLU iterators!
--
Michael G. Schwern <[EMAIL PROTECTED]> http://www.pobox.com/~schwern/
Perl6 Quality Assurance <[EMAIL PROTECTED]> Kwalitee Is Job One
That which stirs me, stirs everything.
-- Squonk Opera, "Spoon"