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.
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:
- Ubuntu 10.04 LTS has Perl 5.10.1 and Python 2.6.5
- RedHat Enterprise Linux 5.6 has Perl 5.8.8 and Python 2.4.3
- Oracle Solaris 10 ships with Perl 5.8.4 and Python 2.2.3
- HP-UX 11i ships with Perl 5.8.8 and no Python
Some of these versions are so old that the core language maintainers no longer issue security updates for them.
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.
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.