The Trouble With Open Source: My Sage Saga

Sage logoAt a recent conference of mathematicians, I heard a lot of talk about Sage, an open-source project designed to create an alternative to powerful but pricey mathematics packages such as Wolfram’s Mathematica, Maplesoft’s Maple, and MathWorks’ MatLab. Do I decided to give it a try. The resulting struggle is a powerful indication of why open source will continue to struggle to find a place on the systems of all but the most dedicated users.

Sage, which is available free under the General Public License v. 2+, is an impressive piece of work. It falls  far short of the polish of its commercial competitors, but offers a wealth of tools with its broad range of mathematical functions and commands and its Python-based programming language. But, as has so often been the case with open source projects, it falls drastically short on user experience, starting with an installation process so difficult that most people are likely to give up long before they get it running. First, although Sage claims to be available for Windows, Mac, and Linux, it only runs natively on Linux or UNIX systems. On the Mac, it is installed to run directly on Darwin, OS X’s BSD UNIX-based kernel, rather than the normal Mac user interface. On Windows, it requires an Oracle Virtual Box virtual machine.

I tried the Mac version first, but ran into total failure installing it. It starts with a normal-looking DMG disk-image file, but the process quickly requires the use of the Terminal command line. My problems is probably explained by the warning in the readme file: “These binaries are only for the OS X version that is indicated by the package .dmg name. They generally will not work on any other OS X version (unless explicitly stated otherwise).” The latest version I could find was for OS X 10.6 (Snow Leopard) and I’m running Mountain Lion. Scratch that attempt.

I figured a native installation in Linux might go better so I tried the Ubuntu version. People accustomed to Windows or Mac software installations will find installing most programs in Linux more than a little intimidating because Linux lacks standardized installers. Fortunately, an Ubuntu forum offers a very detailed guide to installation that includes command line steps such as:

sudo chmod -R 755 /usr/local/src/sage-3.1.4-ubuntu32-intel-XEON-x86-i686-Linux

(Acting as the superuser, change the rights of the files in this directory and all its subdirectories to read-write-execute for the user and read-execute for everyone else.)

Alas, after faithfully following the instructions, Sage still didn’t work:

(I think there something wrong with the path, but I’m not enough of a Linux guru to figure it out or fix it.)

Finally, the Windows version came to the rescue. It’s a lot more complicated than a normal Windows install, but after all I’d been through., it seemed like a snap. First, you have to download and install VirtualBox. You download the Sage package, which is actually a Red Hat Fedora virtual machine preconfigured with Sage and import it into VirtualBox. Then you fire u the VM. It takes a bit longer than launching a normal Windows program since it actually has to boot Linux, but Sage loaded and ran fine.

The point of all this is that the folks behind Sage, like  they participants in many other open source projects, have failed to tackle the critical issues of usability. They have not transcended the “real men use command line interfaces” mentality and show little interest in the hard, but to most hackers, unrewarding, work of providing a great, or even a satisfactory, user experience. As a result they end up writing code mostly for themselves and each other. This helps explain why open source has had great success on the server (for example, Linux, the Apache web server, and squid proxy server) and tools for pros (for example, the Wireshark packet sniffer)  but has had little impact on the broader world of applications.

This is a shame because the open source model has both produced some great software and provides an important alternative to traditional commercial development. But for both individuals and institutions, the initial cost of software represents a small part of the total cost over its life, whether that is measured in dollars or hours of frustration. That means that free is not enough to drive user acceptance; the convenience and polish has to be there too.