July 9, 2020, , , ,

The Future of Perl at ActiveState – Part 1

The future of Perl will be based on Perl 7 and ActiveState is committed to supporting Perl 7.

Our next version of ActivePerl is based on Perl 5.32, and will be released in the second half of 2020 on the ActiveState Platform, which is where our most recent ActivePerl 5.26 and ActivePerl 5.28 releases can also be found.  

But those that tuned into “The Perl Conference in the Cloud” at the end of June 2020 are aware that the future of Perl will be based on Perl 7. ActiveState is committed to supporting Perl 7, whose first user release is predicted to occur sometime in the first half of 2021. Because Perl 7 has been characterized as just “Perl 5.32 with modern conveniences” it is hoped that the transition should be fairly painless. But as always, ActiveState will evaluate the user release and start planning an “ActivePerl 7” version based on it. 

For more information, keep an eye out for an upcoming blog post that will provide more details of how we’re preparing for the transition to Perl 7, while continuing to support our Perl 5.x series.

The Future of Perl Dev Kit (PDK) and Perl Package Manager (PPM)

While our ActivePerl users and customers are just starting to ask about Perl 7, they’ve been very vocal about ActiveState’s Perl Dev Kit (PDK) and Perl Package Manager (PPM).

Much like Perl 5, these utilities are decades old, and have had trouble making the transition to modern computing platforms and paradigms. For that reason, Activestate has retired PDK, and stopped shipping PPM with the release of ActivePerl 5.28.

But the problems these utilities solved are still prevalent today, namely:

  • How can you wrap Perl scripts/applications as executables so you can easily distribute them to end users?
  • How can you install CPAN modules with linked C libraries into your Perl runtime environment without the need to maintain a build environment on your machine?

In the same way that Perl 7 seeks to reinvent Perl for modern computing, ActiveState remains committed to finding a replacement for PPM that makes sense in today’s world, sooner rather than later.

Modern Perl Package Management

While PPM had its pros and cons, the one thing Perl developers loved about it was its convenience, which (judging from many of our users’ comments) is sorely missed. While ActivePerl 5.32 won’t ship with “PPM 2.0” we are working on its modern equivalent, which will incorporate both the ActiveState Platform and its Command Line Interface (CLI), the State Tool. 

In fact, you may have tried this combination already, where:

  • ActiveState Platform provides a catalog of buildable Perl modules, as well as the ability to build and package those modules (including any linked libraries) for multiple OS’s.
  • State Tool allows you to invoke the ActiveState Platform’s capabilities from the command line.

This is a good solution if you intend to build a centralized, “single source of truth” runtime that can be installed and used by a distributed team on different platforms because it ensures that each developer’s runtime environment is identical. The result is fewer “works on my machine” issues. 

Unfortunately, it’s not yet a good solution if you just want to frequently add modules on an ad hoc basis, since your ENTIRE runtime is rebuilt with each new addition, repackaged and then re-downloaded by the State Tool to your system. 

The State Tool has the intended goal of becoming a true universal, cross-platform package manager. As we work towards this, the first proof of concept that the State Tool can function as a true package manager will be the ability to install Perl 5.32 modules (including those that require linked C libraries) into your runtime environment on an ad hoc basis, without the need to rebuild your entire runtime. 

For more information, keep an eye out for a blog post towards the end of summer 2020 that will provide you with more details about the ActiveState platform, the State Tool, and ActiveState’s modern Perl package management solution. Or sign up for our product updates by scrolling to the bottom of this page.

The future of Perl at ActiveState has never been brighter since the recent announcement of Perl 7.

It’s been two decades since ActiveState simplified Perl installation on Windows with our first ActivePerl release, and while we’ve branched out to include ActivePython and ActiveTcl in our family of language solutions, ActivePerl remains key to our open source initiatives.

While you’re waiting for ActiveState to deliver on many of the promises made in this post, you might want to get familiar with the ActiveState Platform and our State Tool CLI, since they will be at the heart of all our Perl solutions going forward:

  • Install the State Tool and test out its ability to install a Perl runtime into an isolated virtual environment so you can work on multiple projects without conflicts. The easiest way to do so is just to download and install ActivePerl 5.26 or ActivePerl 5.28 since it comes with the State Tool.

Alternatively:

  • To install the State Tool on Windows:
    IEX(New-Object Net.WebClient).downloadString('https://platform.activestate.com/dl/cli/install.ps1')
  • To install the State Tool on Linux:
    sh <(curl -q https://platform.activestate.com/dl/cli/install.sh)
  • Run the following command to download the runtime and automatically install it into a virtual environment:
    • state activate Pizza-Team/Perl-5.28
  • Learn more about how to use the State Tool.

Editor’s Note: this post originally suggested ActivePerl 5.30 would be our next release of ActivePerl. However, after subsequent feedback and review, we have decided that ActivePerl 5.32 will be our next release.

Related Blogs:

Perl Dev Kit (PDK) is Now End of Life

Goodbye PPM, Hello State Tool

Jeff Rouse

Jeff Rouse

Jeff is passionate about innovation, entrepreneurship, and building great products. With over 20 years’ of experience in the IT industry, from startups to publicly traded technology firms, Jeff has led development teams and business operations, created products, and taken them to market. Jeff earned his B.Sc. in Computer Science at the University of Calgary where he ignited his long-standing interest in software technology. At ActiveState, Jeff oversees product strategy and innovation across all product lines.

Comment 1