Luke Palmer:
> Well... it is and isn't.  At first sight, it makes the language look
> huge, the parser complex, a lot of syntax to master, etc.  It also seems
> to me that there is little discrimination when adding new syntax. 

Correct.

> But I've come to look at it another way.  Perl 6 is doing something
> (many things, really) that no other language has done before: making it
> very easy to add new syntax to the language.

Well, that's hardly a new concept for a programming language.

> So modules that introduce new concepts into the language can add new
> syntax for them without working with (ugh) a source filter.  And some of
> these new syntaxes in the "core" language will actually be in standard
> modules, if they're not commonly used.  Just like traits.

This is good. This is what I like to hear. This is why the answer to
all these stupid syntax questions should be "Look, if you need it, just put it
in a module when we're done. But can we please get on with getting Perl 6 
designed and out the door, now?"

But it isn't, and I don't know why it isn't, and so we end up spending loads
of time discussing things that can be punted out to modules. Designing Perl 6
is hard enough; let's not try to fill CP6AN at the same time.

> I'll also point out that FINISH isn't really extra syntax, just extra
> vocabulary.

It's extra special cases, which come to the same thing.

> >   my $result = if ($a) { $a } else { $b };
> 
> Ack!  We have?  It does make sense if we want to be able to implement
> C<if> as a regular sub... I guess.  Yuck.

Yep, we did. Of course, the "nice" thing about it is that it allows

    do_thing() if if ($a) { $b } else { $c };

> That's illegal anyway.  Can't chain statement modifiers :-)

Bah, should be able to!

> But a close relative would be possible:
> push @moves: [$i, $j] unless for 0..6 { last if abs(@[EMAIL PROTECTED]) > 3 }
> 
> Yeah, how about no.  :-)

That's the thing, see. By saying no, we're saying "control structures like
'if' will be able to return a value, but control structures not like 'if'
won't", and that means we need to remove at least three words from 'When syntax
or semantics change, it will always be a change for the better: for greater
consistency, for more intuitability, for extra Do-What-I-Meanness.'... ;)

-- 
Resist the urge to start typing; thinking is a worthwhile alternative.
    -- Kernighan and Pike

Reply via email to