The Perl Renaming Debate Highlights Tensions |
Written by Nikos Vaggalis |
Monday, 26 November 2018 |
The name "Perl" lies at the heart of the drama developing between the two languages, Perl 5 and Perl 6. This is a long way from the once desirable unification and moves towards breaking the ties between former sister languages now emerging as total foes.
But let's take it from the beginning. Back in 2012 when Parrot was alive, when I interviewed him about Perl 6 and Parrot, Moritz Lenz answered this question: NV: Are there two distinct communities for Perl 5 and Perl 6 or do they overlap? ML: There is a certain overlap. For example p5 and p6 folks go to the same conferences, workshops and hackathons, but many Perl 5 core developers ignore Perl 6 and while most Perl 6 core hackers roughly know what's going on in Perl 5 land, there has been a big lack of communication. NV: Is that true of the languages as well? I mean are Perl 5 and Perl 6 two distinct languages, or will past experience of Perl 5 make adoption of Perl 6 easier? ML: They are distinct languages from the same family of languages. On the surface they look quite similar and they are designed using the same principles:
On the other hand they are different enough that a Perl 5 program doesn't run on a Perl 6 compiler, or vice versa and different enough that automatic translation from one to the other is quite challenging. So if you know Perl 5, Perl 6 feels familiar, but under the hood a lot has changed. For example, Perl 6 is object-oriented to the core, whereas Perl 5 is not. And then on December 24, 2015, there was the first official Perl 6 release, Perl 6 Version 1.0. We looked at the differences with Perl 5 in Perl 6 First Official Release, reporting: Larry Wall sees Perl 6 as the chance to correct everything done wrong in Perl 5... This means that Perl 6 has been designed to be easier to parse, in contrast to the Perl 5 saying of 'only Perl can parse Perl'. Perl 6 has been designed with Object Orientation from ground up, also mixing in a functional programming flavor, rather than the way in which Perl's 5 object-oriented support which was patched in as an afterthought. Furthermore Perl 6 is a different language from Perl 5 and not a new version of it, despite borrowing many aspects from, like being easy to learn, get things done quickly and there being more than one way to do things. As far as implementation is concerned, and according to Moritz Lenz, another main contributor to Perl, Perl 6 in contrast to Perl 5 has multiple implementations like Rakudo and Niecza, with Rakudo running on JVM and MoarVM while Niecza on CLR/.NET. Perl 5 is tied to C and XS, whereas the Perl 6 compiler writers have more freedom in the choice of backends. Perl 5 compiles a program to bytecode, but always keeps that in memory, but Rakudo can compile to bytecode and store it on disc. Syntax wise, if you know Perl 5, Perl 6 feels familiar, but under the hood a lot has changed. So given how the differences outweighed the similarities, calling the language Perl and giving it the number 6 misled people into believing that it's an updated version of Perl 5 rather than a different language; and the rift has been widening since then. Zoffix a member of the Perl 6 core team even felt that "Perl" is strongly associated with Perl 5, and as such Perl 5's alleged decline in popularity also drags down the reputation, and "marketability", of Perl 6:
A year and a half after he first raised the issue of an alternative name to attempt to disambiguate the two languages, last month Zoffix asked Larry Wall to make up an alias for Perl 6, but not a complete change of name. Why not a straightforward rename, but just an alias? According to Zoffix: While numerous members of the community would have liked to see a full language rename, there are also those who believe a full rename would be detrimental. The full rename at this point in time is also a lot more challenging due to the existence of books, websites, documentation, environmental variables, and dynamic variables in the languageāall with the name "Perl" in them. True, my Think Perl 6 book review for example falls into this category. It's the title of the book and that's written in stone. But what would happen if Perl 5 Porters (p5p) called the next version of Perl 5, Perl 7 in order to puts the lid on the coffin of the impression that Perl 6 is a newer version of Perl 5? The Perl 5 language is effectively blocked from releasing the next "major version", because Perl 6 is squatting on it. And were Perl 5 to release a "Perl 7", that would immediately paint Perl 6 as obsolete. The lack of any established alternate names leaves Perl 6 vulnerable to such a scenario. Finally, at the beginning of November, there came the definitive answer by Larry Wall himself. The alias would be 'Raku', being analogous to a stage name. So what can this aliasing achieve? The most optimal for Perl 6 would be for people to totally forget about the Perl part and start calling it just Raku, allowing it to "become a defacto name through its sheer amount of use". This might work for Perl 6 but still does not make up for Perl 5's problems due to this naming standoff. As Elizabeth Mattijsen argues, Perl 5's loss in popularity could simply be that: "Perl 5 was perceived to be dead because of the coming of Perl 6". Couple that with Perl 5 Porters' inability to freely use number 7, as well as the damaged relations within the community: The biggest issue here, however, is the relationship with the Perl 5 community. The mere existence of a "Perl 6" language paints Perl 5 as obsolete. While the Perl 6 community has to make clarifications to distance itself from Perl 5's negatives that don't apply to Perl 6, the Perl 5 community must make the same clarifications just to convince people they're not dead. This brews understandable animosity towards Perl 6. On the other hand, it could be a case of everything just being blown out of proportion, since cumulatively, things for Perl look pretty vibrant. People, talks, events and meet ups: the recent European Perl Conference In Glasgow, London Perl workshop 2018, Perl Toolchain Summit, The Perl Conference in Salt Lake City, Nordic Perl Workshop & Mojoconf, Dutch and Swiss Perl Workshops, local PM meet ups, the upcoming Perl Conference 2019 in Riga and the list goes on. New book releases: Single Page Application with Perl Dancer, Mastering Perl 2nd Edition,Think Perl 6, Searching and Parsing with Perl 6 Regexes, Perl 6 Deep Dive, Perl 6 Fundamentals, Learning to program with Perl 6 Ports and forks: cperl - an improved variant of perl5, running all of perl5 and CPAN code. With many perl6 features, just faster. Faster than perl5 and perl6. It is stable and usable, but still in development with many more features being added soon. Compilers, transpillers: WebPerl - a port of the entire Perl 5 interpreter running inside a modern web browser. WebPerl is compiled using clang/LLVM/Emscripten targeting WebAssembly, and can replace JavaScript as a client-side execution platform, complete with XS support! Perlito - source level perl5/6 to perl5/6 and other backends compiler. Revival on the Web front with Dancer, Mojolicious, Catalyst, Plack Conquering of new territories With the Rise of DevOps, Perl Shows Its Muscle Progress with new Perl 5 versions, business as usual: 5.28 latest stable with a lots of new features There are also signs of fresh blood entering Perl's ranks: London Perl Workshop - HOWTO: grow the Perl team Case Study - Geekuni at Booking.com, 2018 If that constitutes 'bad', then I don't know what 'good' means...
More InformationA Request to Larry Wall to Create a Language Name Alias for Perl 6 Related ArticlesPerl 6 and Parrot - In Conversation with Moritz Lenz With the Rise of DevOps, Perl Shows Its Muscle Single Page Application with Perl Dancer Searching and Parsing with Perl 6 Regexes
To be informed about new articles on I Programmer, sign up for our weekly newsletter, subscribe to the RSS feed and follow us on Twitter, Facebook or Linkedin.
Comments
or email your comment to: comments@i-programmer.info |
Last Updated ( Monday, 26 November 2018 ) |