At 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.
Saying ”
will find installing most programs in Linux more than a little intimidating because Linux lacks standardized installers” is not really true. You say “most” but most common programs that you want to use in Ubuntu (arguably the most widely used linux distribution) are actually quite easy to install. The ubuntu software center is really quite good. I will agree thought installing from source code can be quite difficult. Developers of new open source programs need to make .deb installers (and the Red-Hat equivalent) a priority if they want people to adopt their software. Using linux and open source software is worth the hassle though, because what normal person can really afford a license to Matlab just to try on their home machine?
I didn’t want to get deeper into the weeds of Linux than I already was, but you actually highlight the problem here. If an application is included in a distribution or in something like the Ubuntu app center, installation is usually quite easy. But there is no common installation procedure across distros, so you would need an installer for Ubuntu, and another for Debian, and yet another for Fedora, etc. This is not going to happen.
the major reason I was so disappointed by the difficulty of installing Sage is that it does fill a real need. The Home version of Mathematica, a mere $295, is the bargain of the field–everything else is even more expensive. Only a small number of people need this sort of software, but those who need it need it bad.
Hi
I read your article with interest but would like to indicate that the particular sentence structure in the article such as “Linux lacks standardized installers”, the sentence is amended in the third comment but the whole thing creates part of the gestalt in the minds of people that Linux “is hard to do”. And yes, your third comment kind of ameliorates things with “”something like …app center….usually quite easy”.
It is humbly suggested that the kind of sentence structure in the first para is prime fodder for other bloggers that love to jump onto Linux so that they can, hopefully, get a nice clicker button from MS to harvest some money.
And as to the “installers”, again, you misstate the case. There are really only two dominant installers and they are for .deb files and .rpm files, yes there are others, but in all cases, if the app is in the OS repositories, then it is a simple click no matter what the file type so it is of no matter at all what the file type is. A simple click is a simple click.
Your particular case is one of an app that is so “far out in the weeds” that nobody has gone to the trouble to package it.
You say that Ubuntu has provided a nice set of instructions. And you used the instructions and then…say that “there is something wrong with the path” and then stop. Okaaaayyyy if there is something wrong with the path, then a simple copy and paste of the correct path …..should…..fix it… yes, one might need to type in one’s “home name” or some such but since you are a math whiz that should be small potatoes.
The “probable” problem was that the installer was not correct for the particular version of Ubuntu that you were using and….if you had re-tried to do the installation then if you DID have the correct path, etc. and it would not install, the terminal would have provided a message outlining which other applications, python, etc or what not, were not avaiable.
That is not the fault of the installer but the lack of the particular version of either Ubuntu or Sage.
Again, I would gently suggest that a few clicks to enroll at the Ubuntu forums and a polite question might have solved the problem(s) in a shorter amount of time than was spent on the Windows install.
Just some thoughts.
james
I think you have inadvertently helped make my point, at least with regard to Linux. In the operating systems that have won broad desktop acceptance, Windows and OS X, every application comes packaged in a single-click installer. But the Linux environment is hopelessly fragmented, so we have two major approaches to packaging–Debian and Red Hat–and many applications that are not packaged at all. Sage is not an obscure app and, considering the cost of the commercial competition, would be a lot less obscure if installing it weren’t such a chore.
Sage at one time was actually part of the Ubuntu distro, but the Sage team was updating the code so frequently that Canonical found it too burdensome to keep up and dropped it. This, by the way, is another problem with some open source efforts–a lack of discipline on version releases.
I did start in an Ubuntu forum–that’s where I got the instructions, but I just felt it was time to move on to the next platform. I’ll probably eventually get the Ubuntu installation working and may even be able to use that as a template to get the native Mac version to run.
“But there is no common installation procedure across distros, so you
would need an installer for Ubuntu, and another for Debian, and yet
another for Fedora, etc.”
This is true for Windows vs. MacOSX vs. Linux as well. Windows installation procedures for an application often differ from the corresponding MacOSX installation procedures. Many are one-click and behave well across different OS’s, but certainly not all. While you have had troubles with Sage, methinks your brush strokes a bit broad: Judging open source on the basis of a few applications is a bit like condemning all of Windows because IE sucks. (There are so many additional reasons to condemn Windows. 😉 )
I’m not condemning Linux, just saying that the failure of the Linux community to deal with critical user experience issues has held it back, probably to the point where it no longer much matters.
The Linux vs. Mac and Windows is somewhat beside the point. In different Linux distros, you need different stallers for the same binaries (or source.) For OS X and Windows, you not only need different binaries but completely different source code.
No that’s not what you’re saying. You have a misapprehension on a specific point which you’re using to support your broader argument – someone is explaining that this point is wrong and you’re continuing to make the same mistaken point.
Lets try again.
There is as much difference between Linux distributions as there is commonality. So saying the Linux distributions have “failed” to deal with this issue is non-sensical. Your point about the binaries is incorrect – different Linux distributions have different libraries and different versions of them, so executables that work on one will not work on another. That is why Ubuntutourist tried to explain to you that this is no more possible than having a single installer for Mac and Windows.
At a wider level I think you should take a step back and look at some of the fantastic work that is happening in the end-user orientated Open Source projects. There are lots of areas where Open Source projects accept that usability is important.
Real men do use the command line! Also, if you aren’t capable of installing a program you probably have some SERIOUS reading to do 🙂
Great post. I’ve been running Ubuntu/Cyanogen for a while and feel the same way. I would much rather just use the software than ever open a command line or flash a custom rom. Even as a more advanced user, I’d rather not put my time/effort/energy into it.
I’ve just installed Sage on a Mac running OS X 10.8 Mountain Lion and had no problems at all (using the current sage-5.2-OSX-64bit-10.6-x86_64-Darwin.dmg binary).
That’s the same download that failed on my system. I’ll try again when I have the time.
Probably a little late, but Sage has a proper Mountain Lion version now. It works perfectly… http://boxen.math.washington.edu/home/sagemath/sage-mirror/osx/intel/index.html
Sage is an incredible work in progress. I left Windows for OS X several years ago, and now I am trying to do as much of my work as possible on linux machines. I am by no means an expert yet, but I found Sage quite easy to install on Linux Mint 13, using either the KDE or Xfce desktop environment.
Installation is not the issue, I believe. Beyond installation, many potential users of Sage (or Octave, SciLab, or Matlab as well) will be discouraged because of at least two things. First, it is necessary to use the command line, either from the terminal or in the Notebook browser interface. Second, although it is possible to generate attractive default plots, it is cumbersome to configure them.
It would be great if Sage could be developed to the extent that it could accept free-form input, such as Mathematica, or even completely free-form input, such as handwriting from a tablet. Second, it would help enormously if plots could be configured in a point and click manner, as in programs such as GraphPad Prism.
The Sage team is to be commended for creating a mathematically rigorous collection of applications gathered under a common interface. Now they need to work with people who could turn the interface into something that would make Sage attractive to end-users who are not professional mathematicians.
You have noted very interesting details! ps decent web site.
Superb post however I was wanting to know if you could write a litte more on this topic? I’d be very grateful if you could elaborate a little bit more.