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:

    • easy to learn (it's possible to speak "baby perl" without learning much of the language)
    • get things done quickly
    • there's more than one way to do it

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:

  • It is similar to earlier Perl language (and thus comes with all the negative connotations attributed to it)

  • It is the next version of Perl language

  • It is faster, more stable, and "better" than earlier Perl language 

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 DancerMastering Perl 2nd Edition,Think Perl 6Searching and Parsing with Perl 6 Regexes, Perl 6 Deep Dive, Perl 6 Fundamentals, Learning to program with Perl 6

Ports and forks:
RPerl - A Restricted Perl by Will Braswell which translates a medium-magic subset of Perl 5 into C/C++ using Inline::C and Inline::CPP

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:
Rakudo - the Perl 6 compiler

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 Information

A Request to Larry Wall to Create a Language Name Alias for Perl 6

On Raku

Related Articles

Perl 6 and Parrot - In Conversation with Moritz Lenz

Perl 6 First Official Release

With the Rise of DevOps, Perl Shows Its Muscle

Single Page Application with Perl Dancer 

Mastering Perl 2nd Edition

Think Perl 6 

Searching and Parsing with Perl 6 Regexes

Interview about Dancer 

Interview about Mojolicious 

Interview about Catalyst

 

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.

Banner


Apache Fury Adds Optimized Serializers For Scala
31/10/2024

Apache Fury has been updated to add GraalVM native images and with optimized serializers for Scala collection. The update also reduces Scala collection serialization cost via the use of  encoding [ ... ]



Extend NGINX With The New JavaScript Module
28/10/2024

Inject middleware functionality into NGINX with the expressive power of Javascript. NGINX JavaScript or NJS for short is a dynamic module under which you can use scripting for hooking into the NGINX e [ ... ]


More News

espbook

 

Comments




or email your comment to: comments@i-programmer.info

Last Updated ( Monday, 26 November 2018 )