Hacker News new | ask | show | jobs
by dale_glass 1489 days ago
Long ago (~year 2000), Perl 6 was announced with great fanfare. Larry Wall set out to start producing a bunch of specs ("Apocalypses", "Synopses" and "Exegeses"), while a bunch of people set out coding. Then two things went wrong.

First, the Perl 6 development had bad project management. According to the reports, the culture attracted experimentalists with interesting ideas, but didn't get along with boring people who wanted to do things like releases and steadily approaching functionality. So there were a number of projects, a number of which were abandoned. Things dragged on, and nobody was cracking the whip. It took 15 years for Perl 6 to finally announce its first official release.

Perl 6 also turned out to be too different from Perl 5. Different syntax, and no XS, which meant every Perl module interfacing with a library wouldn't work even if some sort of automatic conversion, or compatibility mode was possible. XS is tied to Perl 5's internals, and Perl 6 was an effort to make a new language from scratch, without using the old interpreter.

Meanwhile, people started abandoning Perl 5 reasoning that since Perl 6 was in development, 5 would eventually die, and the lack of compatibility would mean current efforts on 5 would be wasted.

It took a very long time but finally it was decided that Perl 6 wasn't really Perl 6, but some other, Perl-like language, and renamed to "Raku" to signal this. But by then it was already too late, most everyone had already moved on, and by the time when Perl 6 was finally released it was an extremely niche thing very few people had any interest in.

Meanwhile, Perl 5 development continued in the background, and they decided that it'd jump version from 5 to 7 to avoid confusion. Perl 7 is the direct descendant of Perl 5, with the same syntax, new features and very few deprecated things.

2 comments

> It took a very long time but finally it was decided that Perl 6 wasn't really Perl 6, but some other, Perl-like language, and renamed to "Raku" to signal this. But by then it was already too late, most everyone had already moved on, and by the time when Perl 6 was finally released it was an extremely niche thing very few people had any interest in.

I agree with the rest of your comment, but I would like to emphasize the ordering of these events: first "Perl 6 was finally released", and only later was it "decided that Perl 6 wasn't really Perl 6 [...] and renamed to Raku to signal this". It was too late not only because most everyone had already moved on (by the reasons you mentioned: why would anyone invest in Perl 5, when the migration to Perl 6 would throw away all that investment?), but also because Perl 6 had already been released under the "Perl 6" name.

I agree, good clarification.

It's a pity really, lots of people worked hard on it, and I think things could have worked out better by just better messaging. Doing the "Perl 6 to Raku" renaming early on might have salvaged things.

I think this is an important lesson -- technical skills are great, but communication is extremely important.

Meanwhile, Perl 5 development continued in the background, and they decided that it'd jump version from 5 to 7 to avoid confusion. Perl 7 is the direct descendant of Perl 5, with the same syntax, new features and very few deprecated things.

Did you read the FA? They decided that, "Yeah nevermind: we're not going to call it Perl 7 ", until some future time where it may make sense to do so to somebody again - but maybe not, who knows? Backwards compatibility, everyone!

I'm not sure if I quite understand the Perl community problem of seemingly never, ever wanting to commit to something new. It's the metaphorical problem of not being able to get across the creek, because you imagine your feet glued to the stepping stone you're on.

> Did you read the FA? They decided that, "Yeah nevermind: we're not going to call it Perl 7 ", until some future time where it may make sense to do so to somebody again - but maybe not, who knows? Backwards compatibility, everyone!

I admit I only skimmed it, I was busy at the time. But it's not too incorrect anyway: Perl 7 will be a direct descendant of Perl 5, whenever that happens.

> I'm not sure if I quite understand the Perl community problem of seemingly never, ever wanting to commit to something new. It's the metaphorical problem of not being able to get across the creek, because you imagine your feet glued to the stepping stone you're on.

I don't think there's a general "Perl community". I mean it's a thing that exists, but as I see it, it's a smaller and tighter group than the general set of people using Perl. There were lots of people that used Perl for whatever needs they had and were never regulars at conventions, Perlmonks and other places, and as a result had little influence and weren't up to date on what the core people were doing.

Many of those also had no interest in committing to such a thing. Eg, they were writing stuff for their day job, and had little interest in participating in the development of the language.

I think quite a few people are confused by the line about it becoming Perl 7 "sometime in the future". I think it is unlikely that that is the distant future, myself. I think the main hang-up is they'd like to get the new built-in object system (Corinna) working.

If you're a "move fast and break things" kind-of guy, watching the perl devs in action will annoy you, because they're committed to not breaking things, and if they have to move slow to avoid it, they will.

On the other hand, if you want to be sloppy with your own perl code, or work with CPAN modules that move faster, that's up to you.

Um, they are going to call it Perl 7 at some future time. There are things they want in place first. But it is happening and it will be P7.