ActiveBlog

Crossing platforms with current, consistent Perl and Python versions.
by Troy Topnik

Troy Topnik, February 18, 2011
ActivePerl and ActivePython

The appeal of ActivePerl and ActivePython is obvious when you're running business applications in an exclusively Windows environment. There are other distributions of Perl and Python available for Windows, but none with a vendor like ActiveState backing them up.

What's not so obvious is why using them makes sense when you're working on operating systems that have their own versions of Perl and Python. There are a few good reasons.

Current releases

ActivePerl has had recent releases in the 5.8, 5.10 and 5.12 branches, and ActivePython has builds for 2.6.6, 2.7.1 and 3.1.3. These releases come out days after the core language ones, rather than weeks or months.

Operating system vendors have a lot of software packages to worry about. Keeping their versions of Perl and Python completely up to date is often lower on their priority list than it is for us. Most will provide updates for critical security problems, but generally they're a bit behind the current language releases. Some are better than others:

Some of these versions are so old that the core language maintainers no longer issue security updates for them.

Not-so-current releases

That said, you may need to run an older version of a language for particular applications. In that case, it's also helpful to have a language distribution which is decoupled from your OS version.

You also shouldn't have to hold off on a system update for fear of breaking a legacy application that relies on an older version of Perl or Python. It's better to let the bundled interpreters stay in sync with the system (they may be very deeply integrated with the OS package manager or other system administration tools) and run your application with a separate installation of the language.

Application incompatibilities don't often creep in with patch-level releases, but can with minor releases (e.g. Python 2.5 to 2.6). The language maintainers sometimes do take the opportunity in these releases to introduce new syntax. These changes are usually designed to be backward compatible, but they haven't been tested against everything out there, and probably not against your code.

This consideration is especially important in organizations with stringent quality assurance cycles. If you've just spent several months in QA for an application, you'll be reticent to pull the rug out from under it by updating the language engine.

ActivePerl and ActivePython Business Edition let you standardize on older versions when this is necessary, giving you access to our inventory of archived builds to choose the one that fits.

Consistent versions across platforms

Most companies and large organizations standardize on a particular operating system to run server-side applications. Server rooms will usually be full of similar hardware, and mostly all running the same operating system (and version). Running business-critical applications across disparate operating systems is rare, but it happens when one or more pieces of the infrastructure puzzle requires certain hardware or software. In this situation, minimizing the variables by standardizing on a particular distribution and version can be essential.

A much more common case is the discrepancy between developer workstations and production servers - even when both sets of machines are running Linux. For example, Ubuntu is an extremely popular choice for developers. It's easy to update (and 'dist-upgrade') and as we see in the list above, it offers fairly recent versions of developer tools. On the other hand, corporate production servers tend to be dominated by Red Hat Enterprise Linux and Suse Linux installations, with major version upgrades happening much less frequently.

ActivePerl, ActivePython, and ActiveTcl are a good way to mitigate this discrepancy. These distributions can be installed alongside the system Perl or Python, and since the Community Edition (for Windows, Linux and Mac) is free, developers can use it on as many systems as they need to. When it comes time to push that code into production or onto an external-facing server, Business or Enterprise Edition can provide the company with the reassurance that support is available when it's needed.

So...

Download ActivePython or ActivePerl Community Edition for Windows, Linux, or Mac OS X. For enterprise-grade operating systems like HP-UX, Solaris, and AIX; or if you you need to standardize on an older version of Perl or Python, ask us about ActivePython and ActivePerl Business Edition or Enterprise Edition.

Subscribe to ActiveState Blogs by Email

Share this post:

Category: perl, python
About the Author: RSS

Troy Topnik is ActiveState's technical writer. After joining ActiveState in 2001 as a "Customer Relationship Representative" (AKA Tech Support), Troy went on to lead the PureMessage Enterprise Support team before moving on to a technical writing role in 2004. His talent for describing software for new users stems from his difficulty understanding things that developers find obvious. He has a Bachelor of Music from the University of Victoria.

Comments

2 comments for Crossing platforms with current, consistent Perl and Python versions.
Permalink

Actually, it is still not so obvious is why using ActiveState language distributions makes sense when you're working on operating systems that have their own versions of Perl and Python. Why is ActivePython better than a tarball install? Or virtualenv for that matter?

Permalink

PyPM for a start. Note that it supports virtualenv.