4 ms·
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
by wiremine 6y ago
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-renaming-perl-6-to-raku.html http://blogs.perl.org/users/ovid/2019/10/larry-has-approved-...
[2] https://www.nntp.perl.org/group/perl.packrats/2002/07/msg3.html https://www.nntp.perl.org/group/perl.packrats/2002/07/msg3.h...
- donio 6y agoYou 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.
- CydeWeys 6y agoRaku isn't a completely new language. It's very clearly a descendant of the Perl lineage.
- INTPenis 6y agoYeah 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.
- arunix 6y agoThere'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 https://raku.org/archive/doc/design/apo/A01.html [2] https://raku.org/archive/faq.html https://raku.org/archive/faq.html
- lizmat 6y agoThose were the plans. In the meantime, Perl 6 has been renamed to Raku (https://raku.org 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 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.