On 10/20/05, Nate Wiger <[EMAIL PROTECTED]> wrote:
> Luke Palmer wrote:
> >
> > Okay, I may still be missing your point, so let me try to summarize
> > just to be sure we're on the same page:  You say that the thing that
> > is going to hinder migration to Perl 6 is the fact that it's different
> > from Perl 5.
>
> Intentionally trite oversimplification.

Oh, sorry.  I was going to expand on that, but then the direction of
my message changed and I forgot to.  Sorry for my overall hostile
tone.  I'll try to conduct myself civilly for the rest of the
argument.

> > Our target audience is only somewhat from a Perl 5 background.  People
> > from Java, from Python, from C, and even just starting to program will
> > be learning Perl 6, and they would rather have all the language be
> > zero-based, rather than most of it being zero-based except for $1, $2,
> > etc. (you were complaining about special exceptions if I recall).
>
> Every regex engine in every language uses $1 or \1. This includes Java,
> JavaScript, C, PHP, Python, awk, sed, the GNU regex libs, etc. Somehow
> other languages seem ok with this, because it's a widely-used convention.

Yeah, well, every other regex engine on the planet uses [] for
character classes, no other regex engine uses <> for subrules, no
other regex engine uses a match object or nested capture numbering. 
Perl 6's patterns are _not_ regexes anymore.  But I doubt that we
won't be imitated, because the new regexes are way better than the old
ones.  Breaking cruft for a reason and all that.

> And you don't have to answer, but have you actually programmed in Java
> or Python? You seem to be speaking for alot of programmers.

Yes, yes.

You seem to be speaking for a lot of programmers, too.  We have to,
for if we didn't try, we probably wouldn't be good language designers.

> > The reason I'm dismissing you as a "complainer" is because of your
> > broad field of attack.  You say that "the method syntax is starting to
> > make [your] head spin". Well, what about it is making your head spin?
>
> The method: infix:<+> stuff makes no sense to me, but I don't want to
> dwell on it.

Ahh, grammatical categories.  You may already know this, but let me
try to explain.  The category:<symbol> stuff is our way of letting the
user hook into the parser in common ways without them having to go and
explicitly change the grammar of the language.  Generally, that syntax
has nothing to do with it being a method.  Whatever you see inside the
quoter after the category is always introducing (or defining an
additional meaning for) a token, which I guess is why it's quoted.

> > The fact that we use . instead of -> (like every other language on
> > the planet)?
>
> You're using my argument for me - thanks. See above.

Huh?   So you want to go back to Perl 5's arrow?  *Anybody* coming to
Perl 6 from some non-Perl 5 language is going to be more comfortable
with dot.

> > [1] Which will be, what, eight hours for a Perl 5 programmer?  Have
> > you ever spent a month trying to learn, oh, say, Haskell?  Because
> > people do that, too.
>
> There are more components to this that just the learning time for one
> person. There are project teams, sustaining engineering for existing
> projects, etc. And that's not even counting management tape. Real-world,
> profitable computing is a big, ugly, nasty beast.

Which is why we're going to great lengths to make sure that your Perl
5 code and your Perl 6 code can run together.

    use perl5:DBI;

The transition to Perl 6 doesn't mean that /usr/bin/perl is going to
change to version six under your feet and all your code will break.

> If Perl 6 is going to be successful, this means it must change the
> fewest key things with the most benefits. This may mean some things that
> "aren't quite perfect" still don't get changed. (It also means lots of
> new stuff can still be added - I'm just talking change.)

It sounds like you want a backwards-compatible change.  From the
outset we knew that this wasn't our goal.  Perl 5 is full to the brim
with syntax, and there's pretty much nowhere we can add anything, and
there's tons of cruft that we had to get rid of.

Consider Perl 6 to be a derivative, not an extension, of Perl 5.

Luke

Reply via email to