Perl 6 and Perl 5 are different languages

masak on 2010-08-04T23:10:09

Today at the YAPC::EU keynote, the inimitable Larry Wall, accompanied by his guardian angel and his guardian devil, made a poll asking which ones in the audience believed Perl 5 and Perl 6 are the same language, and which ones believed they are two different languages.

I was in the front row, so I didn't see the sea of hands and which way the poll tipped. But on my row, both Patrick Michaud and Jonathan Worthington voted "different". I was slightly surprised to find myself voting "different" as well. I'm the one who only last year wrote this entry which seems to insist on a "same" vote, if only by criticizing those who take the opposite view.

I think that what's happened in the past year is that there's a bit more room in the "Perl" space. We're now talking of two different languages in the Perl family, and the Perl community being shaped like a tuning-fork with its Perl-5 people, Perl-6 people, and Perl-omnivore people. It simply feels safer now to state "different", in a way it didn't last year.

One thing about the tuning fork that I really like is that it's basically two universes in one. We could've had

(a) Perl 6 taking off early and essentially killing Perl 5, precluding its renaissance as Modern Perl, or
(b) Perl 6 floundering so badly and for so long that Perl 5 took over with such force that no-one bothered to develop Perl 6 anymore, and a "Forever Five" condition in the community was announced.

Instead we find ourselves in a junctional universe where both languages are thriving and evolving. And they're different, not least because Perl 5 is older, more mature, and more used in business-oriented environments. But Perl 6 is getting there too, and the two languages will start playing together on increasingly equal footing, just like half-a-generation-apart siblings would.

I like that.


Renaissance

chromatic on 2010-08-04T23:19:44

Perl 6 was a precondition for modern Perl.

Re:Renaissance

masak on 2010-08-04T23:27:35

I bet that assertion would meet anything from full agreement to full disagreement among Perl 5 people. Doesn't say much about its truth content, of course.

But I wouldn't put it past the Perl 5 people to invent things like Moose and the testing culture even without Perl 6 doing experiments at the front lines. Maybe in a hypothetical parallel universe where Perl 6 never existed, they'd have chosen to be inspired by the good parts of Haskell or Python or Ruby (or other languages with good parts) instead.

Re:Renaissance

chromatic on 2010-08-04T23:55:29

Maybe in a hypothetical parallel universe where Perl 6 never existed....

Only the solipsists among us can do anything other than theorize over what might have happened if or if not. What happened happened. Immature poets imitate and mature poets steal -- in part because mature poets have no trouble crediting their inspirations.

Re:Renaissance

masak on 2010-08-05T07:15:04

Only the solipsists among us can do anything other than theorize over what might have happened if or if not. What happened happened. Immature poets imitate and mature poets steal -- in part because mature poets have no trouble crediting their inspirations.

Right. Just saying that there's a qualitative distinction between "Perl 6 inspired modern Perl" and "Perl 6 was a precondition for modern Perl."

Re:Renaissance

chromatic on 2010-08-05T15:19:24

I see no distinction. You might as well say "Without Perl 6, we'd have modern Perl anyway!" as "Without Perl 6, we'd have flying cars by now!" Absent a time machine, empiricism doesn't work that way.

Re:Renaissance

phaylon on 2010-08-05T16:40:26

By the same reasoning, how can you be so certain that Perl 6 was a precondition for modern Perl? There can't be any evidence that modern Perl wouldn't have happened in one form or another if Perl 6 didn't exist.

Maybe there is simply a misunderstanding of the meaning of "precondition" in this context.

Re:Renaissance

chromatic on 2010-08-05T17:52:22

There can't be any evidence that modern Perl wouldn't have happened in one form or another if Perl 6 didn't exist.

I pay little attention to that hypothetical situation because we live in a world where Perl 6 does exist. My assertion is that it's easy to demonstrate how Perl 6 inspired, influenced, and instigated many parts of modern Perl: make a list of features of modern Perl, figure out who started them and why, and correlate those to the development of Perl 6.

I already mentioned testing. Consider Moose, then Devel::Declare, then regular release cycles.

Re:Renaissance

phaylon on 2010-08-05T18:52:20

It's just that "inspiration", "influence" and "instigation" are something different than "precondition". That's at least my impression as a non-native English speaker.

Re:Renaissance

chromatic on 2010-08-05T21:16:13

Certainly there's a touch of tautology in my original statement, but that makes it no less true. We can't know what might have arisen in a world without Perl 6, but we can say that a relentless expunging of every influence of Perl 6 in the Perl 5 ecosystem would cripple modern Perl as we understand it now.

I could speculate as to whether Perl circa 2010 in that hypothetical universe would be better, worse, or different from as we understand it now, but I won't. What happened happened, and many of those happenings began to happen in 2000.

Re:Renaissance

jdavidb on 2010-08-05T14:09:18

Moose is definitely attributable to Perl 6, but didn't the testing culture predate it?

Re:Renaissance

chromatic on 2010-08-05T15:17:04

Schwern wrote Test::Simple and then Test::More as part of an overhaul of Perl 5 testing to prepare for Perl 6; he was the chair of the Perl QA working group formed as part of the Perl 6 working groups. I extracted Test::Builder from both at Schwern's suggestion.

Re:Renaissance

jdavidb on 2010-08-09T17:25:35

I see. I absolutely did not realize this! Thank you for helping me see this additional debt Perl 5 owes to 6.

I also didn't realize you were responsible for Test::Builder; I thought that was all Schwern.

Re:Renaissance

chromatic on 2010-08-10T15:49:46

I believe that T::B was Schwern's idea; I happened to implement the first version.

Re:Renaissance

jdavidb on 2010-08-05T14:04:08

I agree, and I'm a Fiver.

Glad you came around

jdavidb on 2010-08-05T14:07:22

Personally, I argued that they were two different languages in 2007. I thought pretty much everyone agreed other than trolls I reference in that post who seemed to be using the long wait for Perl 6 as an excuse to troll Perl. (You do not in any way appear to be among those.)

I can say that today I suspect I will be a Sixer at some point. I don't know when.

Meanwhile, I learned Rose::DB::Object the other day. So much fun, and there are so many great things going on.

Re:Glad you came around

masak on 2010-08-05T14:25:47

As a fairly entrenched Sixer, I might have a slightly warped perspective on the "different languages" thing. As long as it felt like a criticism and a threat of community fracturing, I was less inclined to agree. Also, as long as the two statements "Perl 6 isn't Perl 5" and "Perl 6 isn't Perl" were equivalent in the minds of people, it was difficult for me as a Sixer to agree.

Now both of these things have changed. The community didn't fracture, it just shifted into people doing Serious Production stuff and people Optimizing for Fun (and those doing both). It's getting increasingly accepted that "Perl" encompasses both Perl 5 and Perl 6, but isn't equivalent to either of them. And that's probably why it's easier for me to say today that Perl 5 and Perl 6 are different.

Re:Glad you came around

jdavidb on 2010-08-05T14:38:09

Yes, the tuning fork analogy you use here clarifies the community issue for me immensely. I'm not on the Six branch of the tuning fork, though it has started to look somewhat attractive as of this year.

I can't say that I ever would have argued that "Perl 6 isn't Perl." I hope not. I read through the IRC log on your old post and found my blood boiling somewhat at the confusion behind those assertions. Perl 5 doesn't have an exclusive claim to the Perl name.

Re:Glad you came around

masak on 2010-08-05T15:04:31

Blood has been boiling, and I'm glad we've collectively found ways to make it not boil anymore. An outright intra-Perl tribal war -- and we seem to have turned away from that path by now -- would have been wasteful, probably ugly, and doubtless sad.

Re:Glad you came around

jdavidb on 2010-08-09T17:24:32

I want to clarify that what made my blood boil was the suggestion was that Perl 5 was Perl and Perl 6 was not Perl. I hope that was obvious and I hope you realized that, but just in case you or anyone else reading did not, I wanted to state it explicitly.

I don't believe any Sixer has ever made my blood boil, other than that idiot jdavidb who jumped into the Perl 6 RFC process ten years ago without knowing what he was doing when he really had no business "helping." But he quickly realized he didn't know what he was doing and couldn't keep up, and left things to the experts, and went back to being a Fiver. ;)

Tradition

perlybird on 2010-08-05T15:26:17

Perl 5 and Perl 6 are different but share the same spirit :)

"Tradition is not holding onto the ashes but passing on the flame" (Sir Thomas More)

I voted "different"

moritz on 2010-08-05T15:40:04

... and "same" too.

It's not a binary decision, if you ask me.

Re:I voted "different"

masak on 2010-08-05T15:47:33

Dang! I should have voted that too. :)