The Perl Master Plan - Fact or Fiction?
Written by Nikos Vaggalis   
Tuesday, 12 November 2019

Will 'the Chill' Braswell, President of the Austin Perl Mongers but mostly know for his work on the RPerl fork, spearheads the "Perl Master Plan" initiative which aims to reinstate Perl as a prime force in the programming world. As an idea and roadmap it seems good. But is it asking the impossible?

The plan proposes a number of targets that the effort should be directed to - Education, Jobs and Performance amongst others. Introducing the focus on Apps the proposal reads:

Variety is The Spice Of Programming 

  • In the past, Perl applications could be found on most computers.
  • Currently, most new apps are written in Objective-C, JavaScript, Python, Java, and dozens of other so-called "fad languages".
  • Efforts to distribute new Perl apps are met with indifference or rejection.
    (Notice a pattern yet???)
  • We are now creating a new collection of Perl apps, including video games, an office suite, various mobile tools, and solutions to the Grand Challenge problems.
  • Each Perl Mongers group will organize regular hackathons in their local hackerspaces and coffee shops.
  • The goal is to have our Perl apps on every digital device on Earth!

Instead of vague promises it's better to analyze what Perl can do, what it can't and what it could do in the near future. Most of the problem domains referenced in the master plan that Perl would thrive in look unrealistic.

Being critical of one's disadvantages is not bashing; self-reflection is a synonym to realism. As important as acknowledging what I can do, the same goes for acknowledging what I cannot. The practical aspect of it is that I don't have to allocate unnecessary resources or waste valuable time on things that cannot happen or that someone else does better already. For example, write video games in Perl? Sure, a snakes-and-ladders game maybe, but what about one like Fortnite? Not with that kind of threading model, I have to say.

An Office suite? Desktop apps are not a thing nowadays, everything runs in the browser therefore direct the effort on reclaiming the web with Catalyst, Mojo and Dancer. Add asynchronous capabilities and reactive streams into the core by means of, say, a RxPerl library?

Client browser-wise, you could point out that it's Javascript's realm, so again there is nothing to do there. All hope is not lost though as Webassembly might turn things around and breathe fresh air to in-browser Perl applications. It's already happening with WebPerl courtesy of Hauke Daempfling's one man show (haukex). Why not offer him a grant to advance the integration of Webassembly and Perl in new and innovative ways?

Python a "fad language"? Going face to face with Python on the data science and machine learning front is a lost cause. Python already excels on that front and there would have to be something extraordinary for people to look the other way. So unless someone does come up with a groundbreaking idea, it's better to funnel the resources elsewhere.

What I'm saying is that instead of looking for Utopia, work on the good parts of the language and make them even stronger. For instance, where does Perl win everyone hands down? The answer is still regular expressions, therefore focus on pushing its regex capabilities even further. As described in Can Regular Expressions Be Safely Reused Across Languages? Perl's regular expression engine makes the web a safer place by being the most effective against ReDoS (Regular expression Denial of Service). Why not reclaim the critical backend Web application infrastructure through that ?

Of course it goes without saying that work must also be allocated to those matters that are in need of revamping and modernizing; threading and concurrency, for instance.

Other promises the masterplan makes are to add: 

  • a Perl curriculum in every school
  • Perl jobs in every company
  • Perl apps on every device
  • make Perl accessible to every person
  • Perl as the fastest language
  • Perl as the most popular language 

Applaudable as an idea, but who is going to do that or how is to be done is, however, not outlined, apart from hinting that the Perl Monger groups around the world will.  The question is, are they aware of that?

The Performance goal of having Perl as the fastest language on Earth probably implies by means of RPerl -  a subset of Perl, hence the R for Restrictive, see RPerl - Running Perl 5 Faster. Again not a realistic proposition. Instead, why not work on an LLVM backend for the whole language, analogous to the work that's already been done by Perlito? I refer you to Perlito - 4 Years On.

Don't get me wrong.  The plan is not bad. It's visionary, but plagued by wishful thinking.

I believe that the Perl 5 community,c which is in a much better position right now since it disassociation from the Perl 6/Rakudo wars, (see  Perl and Raku Both Anticipating Newfound Glory) should take a step back and refocus on the things that matter most and are realistically achievable.

If we want to turn Perl into "the most popular language"? we need to brainstorm on the problem domain that everybody needs and that Perl would excel in.

More Information

The Perl Master Plan

Related Articles

Perl and Raku Both Anticipating Newfound Glory

Can Regular Expressions Be Safely Reused Across Languages?

RPerl - Running Perl 5 Faster

Perlito - 4 Years On

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.


Microsoft Reveals Preview C#13 Features

Microsoft has announced details of what will be included in C# 13. The news was announced at Microsoft's recent Build conference. The new version will have enhanced parameters, extension types, and se [ ... ]

JetBrains RustRover Now Commercially Available

JetBrains has announced the commercial release of RustRover, an IDE for Rust developers. The company describes RustRover  as combining advanced coding support with an integrated toolchain.

More News

C book



or email your comment to:

Last Updated ( Tuesday, 12 November 2019 )