ActiveBlog

No More Stale Lunches
by Troy Topnik

Troy Topnik, February 2, 2010

muffinThey say there's no such thing as a free lunch. Well, ActiveState has been giving away ActivePerl, ActivePython and ActiveTcl builds for years, and it's been good for us and for the open source language community.

We're going to keep doing that, but we're no longer going to be offering all the old versions for download.

The day-old bread analogy

Bakeries sometimes mark down day-old baked goods in order to get rid of them. After that attempt, they usually go in the dumpster. Some kind souls will give away the two-or-more-day-old stuff to those in need, or at least leave them on top of the dumpster.

Now imagine someone comes along, picks up a muffin from the top of the dumpster, takes a bite, and discovers that it's moldy. We'll even pretend that this person is surprised by that for some reason, and goes inside to complain about it.

Inside, he finds that the day-old and freshly baked ones are also free. The conversation might go something like this:

"Why did you leave all these moldy muffins in the alley when you've got free ones in here?"

"Why didn't you come in and get a fresh one? There's a sign out back."

"I didn't see the sign! I just saw a pile of tasty looking muffins!"

"Do you know how OLD those are?"

"No, I just know they taste terrible."

Software doesn't actually go moldy, but it does get out-of-date. Here's how this silly analogy relates to our language distributions.

Supporting older software

People get directed to our downloads in all sorts of ways, sometimes by following hard links to a specific version. Someone following that link won't necessarily know that they're installing an old version. If the link takes them to a long list of all available versions, they could (and often do) mistakenly download one that's almost a decade old.

Those versions, the best available when they were released, may now have security issues or incompatibilities with more current code. They almost certainly will have bugs that have since been patched in more recent releases.

Having those older versions available for download gives people the impression that they are still supported, and supporting them is difficult. It's no fun trying to reproduce a bug against the current release, only to find that it was fixed years ago in a previous release. Troubleshooting a new bug reported against the older version involves installing that older version before testing can begin.

We can do this, but it's time consuming and it's not sustainable for ActiveState to do this for free.

Enterprise support

There are cases where you might have to stick with a particular version or build of a language. The software you're running may require a specific version to work properly. You may have have rigorous testing requirements that make for long periods between updates. If you find yourself in one of these situations, you want to make sure you can get support for that older version.

We've always provided this kind of version-specific support in our Enterprise distributions for those customers that require it.

Business Edition

Access to older builds is now available as part of our new Business Edition offering. That's not all that Business Edition includes, but it's an important part for users who are bound to a particular version of the software.

Get 'em while they're hot

To summarize: Older versions of ActivePerl, ActivePython and ActiveTcl are no longer available free for download.

If you're running one of these builds, you can continue to do so, or upgrade to the lastest version to get all the latest features and fixes.

If you're looking to download an installer, feel free to grab the latest version from our website.

If you have to use an older version, contact us about our Enterprise Distributions for ActivePerl, ActivePython and ActiveTcl or Business Edition to make sure you'll be able to get support if you need it.

Subscribe to ActiveState Blogs by Email

Share this post:

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

12 comments for No More Stale Lunches
Permalink

Just a question...how old is old? Perl 5.10.2 comes out and you no longer have Perl 5.10.1 for download?

Permalink

We plan to also make the previous patch-level release available as well (e.g. when 5.10.1.1008 is released, 5.10.1.1007 will still be there), just in case people have to roll back for some reason.

Right now, only the current versions are available. This is because previous versions of the distributions include package managers (ppm, pypm, teacup) that are not fully compatible with the new repository structure.

Permalink

It's been a bit of a shock to us - we've been building the Symbian platform using old versions for a long time (Perl 5.6.1, Python 2.5.1), and it's never seemed like a good time to move up. I can see the sense in what you are doing, but it came at a particularly bad time for us, just as we publish our complete codebase as genuinely Open Source.

Our installation instructions point people to your website, and used to point directly at the "we've tested this version" installer files. What URLs do you recommend we use to point people at "the latest release", without having to change with each upgrade?

Permalink

William - sorry for the shock, but you bring up a good example. Kudos for finally making Symbian truly open source, but for years it was a major proprietary corporate investment. Requiring the use of a 9 year old ActiveState release sort of exemplifies some of the points in the blog. ActivePerl 5.6.1 was released in May 2001. 5.8.1 (the beginning of stable releases for the 5.8 line) was November 2003. We consider ActivePerl 5.10.1 the current stable line, though that was more recently introduced in August 2009. The latest releases of 5.8 and 5.10 remain freely available for Windows, Linux and OS X. You could link directly to the downloads page which shows the latest versions available as well. In comparison, the ActivePython release you mention is from 2007.

This is a case where our OEM offering would make sense. This would allow you to offer all your dependencies and ensure uninterrupted distribution. By deep linking to almost 10 year old bits it can lead to increased support load on us when users have issues.

We believe strongly in dynamic languages and their continued future. We encourage users to have the latest and greatest for their development needs. If you need assistance in transitioning to a more recent version, we of course provide support as well.

Permalink

Seems a problematic shift. A lot of software requires (sometimes, is only certified with, other times, only works with) specific versions. I have code and libraries that only work with 5.6, for example. The binary interfaces have changed over time, so if I have to replace 5.6, I have to replace a lot of other stuff, too. And test it. Which I don't have a lot of time for.

I suggest that you not make old versions completely unavailable, just make them harder to get. Your web server can intercept any URLs that point at old download versions, and point them at a "deprecated" download page that makes it clear these are old, not recommended versions. That's a gentler, kinder way to shift people to new builds, but give some escape mechanism if they really, truly need an older build.

Permalink

Not trying to sound glib, but we do have a way for people to get the older builds. It's called Business Edition.

There are very few incompatibilities between Perl 5.6 and 5.8. As you mention, there are cases where proprietary binary extensions (i.e. those that are not from CPAN) might have to be recompiled or modified, but this is all quite doable. The Changed Internals section of the perldelta page for Perl 5.8 has all the details.

Permalink

What about PHP and Komodo? Does this effect "us" at all?

Permalink

No, this doesn't really have anything to do with PHP or Komodo. We don't distribute PHP, so we do our best to make Komodo compatible with as many 3rd party PHP distributions as possible. The same is true for Ruby.

For most Komodo users working with Perl, Python and Tcl, this change also won't have much of an impact. People tend to use the latest available versions of these languages when setting up their development environment. Many older versions will work though.

Permalink

I'm sorry, but if you think suggesting a $1000/server/year option is a good solution, you are way out of touch with your user base.

I guess, fortunately for many, Perl 5.8 isn't considered stale yet.

Permalink

With respect, I think we know our user base pretty well. That doesn't mean that we can support obsolete builds for a small percentage of these users for free in perpetuity.

I guess, fortunately for many, Perl 5.8 isn’t considered stale yet.

ActivePerl 5.8.9.827 was released a few weeks ago. The last ActivePerl build in the 8.6 series was released a three years ago.

Permalink

The problem with not making old versions available is that when the new version doesn't compile (as is the case with 5.10.1.1007) you can't download an old version that doesn't have that issue. The same goes with bugs. You, as every software developer, will add unfortunate bugs in new versions and if that is a show stopper than we are stuck.

Permalink

We can discuss the specifics of the compilation problem offline, but the general concern is one that a lot of people probably share: What if something is wrong with the latest build?

We plan to always make the last two releases available to give people the option to roll back if they have to. This past release is an exception because of compatibility issues with the package managers. After the next release you should always see the last two versions in each branch. This won't avoid every possible incompatibility (there are a lot of modules out there), but it will give people another option in the event that a serious bug is exposed in a new release.