Hacker News new | past | comments | ask | show | jobs | submit login

This isn't a knock per Perl, but looking back, it's really interesting to see how the two communities handled their respective transitions: Python 2 to Python 3, and Perl 5 to Perl 6 (now called raku [1])

I say it isn't a knock because I think they were equally fine with the goals: Perl was looking to make a bold break towards an unknown future [2], and Python wanted a very slow and sustainable migration.

I'm glad to see Python 3 go mainstream, I'm glad that Python 2 succeeded so well, and I'm glad there are segments of computer science that still throw mugs and aim for the moon.

[1] http://blogs.perl.org/users/ovid/2019/10/larry-has-approved-...

[2] https://www.nntp.perl.org/group/perl.packrats/2002/07/msg3.h...




You have it backwards. Perl 6/Raku is a completely new language, the mistake there was to call it "Perl". Perl5 on the other hand has handled its evolution much more gently than Python 2 -> 3 did.


There's more to it than that. Looking at its early history [1], it is clear that Perl6 was conceived/intended to be the next version of Perl after Perl5 e.g.

First, Perl will support multiple syntaxes that map onto a single semantic model. Second, that single semantic model will in turn map to multiple platforms.

Multiple syntaxes sound like an evil thing, but they're really necessary for the evolution of the language. To some extent we already have a multi-syntax model in Perl 5; every time you use a pragma or module, you are warping the language you're using. As long as it's clear from the declarations at the top of the module which version of the language you're using, this causes little problem.

There were even plans for a translator [2] similar to Python's 2to3 tool

Larry Wall and others are already working on a Perl 5 to Perl 6 translator, which will be able to translate (most) Perl 5 source code to the equivalent Perl 6 syntax.

In addition, Perl 6 will provide a "Perl 5 compatibility mode", allowing the compiler to directly execute any code that it recognizes as being written in Perl 5.

[1] https://raku.org/archive/doc/design/apo/A01.html

[2] https://raku.org/archive/faq.html


Those were the plans. In the meantime, Perl 6 has been renamed to Raku (https://raku.org using the #rakulang tag on social media).

Integrating Perl code in Raku can be done with the excellent Inline::Perl5 module (https://modules.raku.org/dist/Inline::Perl5:cpan:NINE). In fact, that efficiency of that module basically killed the "parse Perl code in Raku" project.


Raku isn't a completely new language. It's very clearly a descendant of the Perl lineage.


Yeah but I think they have a point. As a former Perl user and current Python convert I do think the mistake was to call Perl 6 Perl.

It gave me at least a false sense of thinking Perl 5 was done and going to be replaced.

At the same time I found Python to be much easier to write, maintain and I became attached to the structure that PEP provided.

There were a lot of other factors that made me switch, but that particular point of not calling Perl 6 Perl made me think.




Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact

Search: