Thursday, September 30, 2010

Charging for what would usually be free software

I've started getting to simulation for a project that I am doing at work. Long story short is that the language for the simulation program is pretty bad and I have decided to use python in between to use the simulator to work with. The problem is that the $30,000 simulator (which is only 104 MB large) is rather buggy and requires me to use a specific version of python. They recommended that I use a prepackaged version of python that comes from a company called active state.

The thing about python is that there are many optional free libraries that can be used together. In general you should have no problem using the libraries as they have installers to get the thing working. The product/service that active-state provides is sort of a automatic version management system to keep track of the different libraries installed and automates the update process and provides a repository that you can download modules for different programming languages. Their module tracking software for python is called pypm (or Python Manager).

Community Edition vs Business Edition

The distinction between the two version is sketchy at best. On their website they trumpet the use of Financial Modules, Database modules and more. I downloaded the community version since I was recommended by the developer of the simulation software to use it. I then tried to install the usual free numerical calculation modules (numpy, scipy, and matplotlib) for python from their repository and was prompted that I needed a business license to get it; the price for that license is $999, to get access to that package and other packages that required a business license to use. I can't tell if this is a great business idea or a total scam.

I instead went online to download the numerical calculation packages and install them. For the version of python I had before, it worked perfectly. After installing the Active state version of python and installing the packages I regularly use, the plotting package I usually use can't be imported because of a missing library. This doesn't instill a lot of confidence in their software: suppose that I download the libraries from them and it didn't work, I'd be short $999 and very unhappy. The difference between the community edition vs the business edition is "whatever software package they have available, except for some well used ones that we want you to pay for."

On the Linux front, software package management is all done via the freely available repositories available on the internet. I am generally informed automatically of the updates and updating is done automatically. Management of the python libraries is also done automatically and for free. Though I am quite certain that adoption of Linux based systems is still fairly low, should adoption of software repositories and management of installed software be done through these packages be done on Windows, a business like the one ActiveState runs would be killed off fairly quickly.

2 comments:

Diane Mueller said...

Without realizing it, you make the case for ActiveState Business Edition in your post.

It appears, the simulator package that you are using has specific Python packages that it calls upon (matplotlib or NumPy or some other one) and requires a specific release of Python. Perhaps the simulator even relies on builds of those packages that rely on deeper use of Intel's Math Kernel Libraries, or there might even be another dependency that is specific to the platform on which you are running.

And for that reason, the simulator author suggested using ActivePython Business Edition.
All of these dependencies make building your own versions of these packages problematic - you can definitely do this on your own if you like - but getting the right combination and keeping up with releases, patches and platform issues might not be what you want to be spending your time on.

My guess is that you just wanted to run your simulations.

While the ActivePython Community Edition contains all the core Python modules and a number of the commonly used packages, it is not a 'sumo' distribution. Many packages like NumPy are not pure Python and have build dependencies that rely on the presence of specific libraries which do not come for free, require specific versions of these libraries, and/or have slight variations in their build processes across different platforms. ActiveState builds and supports distributions for 16 different platforms, multiple releases of Python and supports thousands of packages. Some of these packages take extra care to build and support, as you have pointed out - and this is why there is a cost involved.

If you had purchased ActivePython Business Edition which is the stable, reliable, tested distribution of ActivePython including the packages that are outside of the core that need the extra attention to build – and comes with an installation and configuration support. If you had emailed us and we would have helped you diagnosis your missing library issue, worked with your simulator package vendor to figure out what was missing (perhaps suggesting that for 30K your vendor ought to have bundled in ActivePython BE so you could have all this at no addition cost) - and you would be running your simulations now.

We’d love it if you give us the specifics of your issues (i.e. the simulator package, the release of python, and the missing libraries) and I'd be happy to see what we can do to make the process more clear in the future.

Diane Mueller
ActiveState, Director, Enterprise Product Management

Paladiamors said...

"All of these dependencies make building your own versions of these packages problematic - you can definitely do this on your own if you like - but getting the right combination and keeping up with releases, patches and platform issues might not be what you want to be spending your time on."

You are correct that this is something that I don't want to be spending time on. But dealing with dependencies with the different packages is easy -> versions for each package of scipy, numpy and matplotlib are available on their respective sites. For installation on a windows system, I have not seen any other dependencies that are required to install these packages. Is there something that I am missing?

"If you had purchased ActivePython Business Edition... you would be running your simulations now."

Though I respect confidence, you are a little overboard with it. I've already diagnosed the problem and dealt with it and unfortunately I doubt that you would have been able to solve it by simply working with the vendor.

The system I work on operates on a Japanese version of Windows and it turns out that there is a bug within one of the python packages that crashes when trying to identify the available fonts on the system. Fortunately for the open source nature of these packages, I've tracked the problem down and inserted a fix into the code. You mention that "care" is put into building these packages, unfortunately that isn't a very concrete description of how the services you provide is advantageous compared to using the publicly available packages.

It would be worth while to know what exact problems does your company solve through it's testing and package set building compared to the version control provided by the open source community -> there are usually version specific releases for each package for each version of python.

The value proposition for me to pay $999 is unclear to me as there is no explicit problem on your website that you mention that you solve vs me installing these packages on my own. If you do say that are problems installing "x" package on "y" platform "and we have a solution for it" then perhaps I may consider it if I really need it. But the proposition I see is that I need to pay $999 to install a package that is generally freely available is not very attractive.

I also note that the information on the site does have some omissions. For example numpy, scipy, matplotlib are freely available packages ActivePython page for the Financial modules makes no mention of this. I find it rather dubious that this information is withheld and makes me question the value proposition your company provides.

Many packages like NumPy are not pure Python and have build dependencies that rely on the presence of specific libraries which do not come for free...

I would like to know by what do you not mean by these packages are "not free?" Scipy's license states that it is BSD compatible (as in free), matplotlib's license also uses a BSD compatible license which is also free.

Anyways, instead of making it look like that Active Python is the provider/distributor of these packages, it should be made more clear that the $999 fee is to gain access to specific public domain modules that have been configured (whatever those configurations may be) in your activePython repositories.

I too, do not want to spent time installing activePython and learning pypm to find that libraries that are generally free, are not available unless I pay for a subscription.