On September 27, 2007, Wolfram Research, the makers of Mathematica, came to my school, CIMAT, to give a conference on Mathematica and to offer other Wolfram products. They raffled a Mathematica license for one of the conference attendees, and I think I heard promises of many more licenses being offered at discount prices.

The event left me deeply shaken. No doubt after seeing the enemy up close and personal and probably after listening to too much Ska-P (with the lyric "siempre amé la libertad", I've always loved freedom, playing over and over in my mind), I felt prompted to write the morning after the rant below, in Spanish. I was satisfied enough with what I wrote that I decided to translate it to English and post it on e2.

Note: in what follows, I never use the word "free" to mean "gratis". If I need to say "zero cost", I'll say "gratis", but otherwise "free" is all about liberty.

I will try to pick my words carefully, and I beg your forgiveness if I fail.

Mathematica comes to CIMAT

Yesterday I felt a terrible fright when I saw the poster announcing the Mathematica presentation and other Wolfram Research products in CIMAT. If there was an announcement distributed through our mailing lists, I didn't see it, so the shock of seeing Wolfram giving a presentation at CIMAT was great and unexpected.

Mathematica. Seeing the name plastered as I did yesterday in CIMAT gave me a very unpleasant feeling. Of the three big software M's that we use in our milieu, the other two being of course Matlab and Maple, Mathematica is the worst from the point of view of scientific freedom. Backed by the egotistical megalomania of Stephen Wolfram (who has read his book?), Mathematica does not reveal a single line of its source code, or at least it didn't reveal it in previous versions; I very much doubt that version 6 which we saw yesterday does. And this is what we call mathematics, according to Wolfram.

The clearest analogy I know of with respect to tolerating the three M's is this: using Mathematica, Maple, or Matlab is like going to the theorem store to buy results whose proofs we are forbidden from studying in detail. Or if we don't buy them but they give away licenses to us or we copy it illegaly (after all, in a school like ours, it's not in Wolfram's best interest to be strict in exerting his copyright; I will say more about this below), they give us gratis samples of Mathematica, without source code and with certain legal restrictions on its use and distribution in hopes of giving us an addiction and collect in the future. The Mathematica presentation that I saw yesterday with the rest of you had me shaken in a way that would be difficult for many of you to sympathise. Call me a nut, but what I saw yesterday in that presentation was terrifying.

Mathematica is unscientific

Setting aside the debate whether mathematics in general is a science or not, I think it's fair to say that at least experimental mathematics like the kind that software such as Mathematica purports to promote is science, and therefore should adhere to the traditional scientific criteria in other disciplines. That is, a Mathematica result should be independently reproducible, should be describable in its entirety, and should be available for scrutiny by the rest of the scientific community for which it may be relevant.

I think it's clear that Mathematica, very far from promoting these scientific goals, takes us away from our scientific objective in many ways. Allow me here to quote the T E Xmacs manual, a free software package for creating mathematical and scientific documents as well as providing an interface to other mathematical packages:

As a mathematician, I am deeply convinced that only free programs are acceptable from a scientific point of view. I see two main reasons for this: A result computed by a "mathematical" system, whose source code is not public, can not be accepted as part of a mathematical proof.

Just as a mathematician should be able to build theorems on top of other theorems, it should be possible to freely modify and release algorithms of mathematical software. However, it is strange, and a shame, that the main mathematical programs which are currently being used are proprietary. The main reason for this is that mathematicians often do not consider programming as a full scientific activity. Consequently, the development of useful software is delegated to "engineers" and the resulting programs are used as black boxes. This subdivision of scientific activity is very artificial: it is often very important from a scientific point of view to know what there is in the black box. Inversely, deep scientific understanding usually leads to the production of better software. Consequently, I think that scientists should advocate the development of software as a full scientific activity, comparable to writing articles. Then it is clear too that such software should be diffused in a way which is compatible with the requirements of science: public availability, reproducibility and free usability.

The emphasis is mine. I think that this quote by Joris van der Hoeven, T E Xmacs's author, speaks by itself.

Why do we tolerate Mathematica?

I think few will disagree that in a perfect world, we would analyse to our heart's content everything up until the last byte of source code of any software if we so wished. Nevertheless, I'm also sure that very few of us have the conviction to believe in this perfect world to the degree of not using Mathematica or try to use free software.

This is why I was trembling in fear and feeling supremely impotent yesterday during the Mathematica presentation. The presentation was very good. In fact, I was astounded when I saw that apparently Mathematica solved a considerably-sized travelling salesman problem (TSP) in what seemed like an instant, if that's really what it did. I don't know why I was the only who expressed amazement. Either Mathematica didn't really solve a TSP, or solving an NP-hard problem is becoming easier than I thought, and I've been living in isolation from the rest of the mathematical world.

I know that these amazing Mathematica features will acquire many followers. They always have. We mathematicians know how difficult these problems are, and we are profoundly impressed when we see that a machine can solve them apparently so easily. Meanwhile, here I am trying to promote free software in the face of opponents as formidable as Wolfram and his army of engineers and mathematicians under non-disclosure agreements and locked up behind copyright and patent laws. It's a battle that yesterday I felt almost lost. I know it will be very difficult to convince my colleagues, if I may so call you even if I don't have yet the same qualifications that each of CIMAT's doctors has, that using Mathematica is unscientific and that we should be promoting instead the use of free software at all levels in mathematics.

This is why we tolerate Mathematica. I know. Because it gives us very good answers to problems that we almost always consider trivialities that are too boring to calculate ourselves. It's a Faustian pact to use Mathematica: in exchange of what can appear to be an epsilonic amount of our scientific freedom, we obtain incredible computing abilities. It's extremely tempting to accept. I understand.

However, I value my scientific integrity too much to sign this pact. It terrifies me to know that I'll be deemed a lunatic and that almost nobody else values this freedom in the same way.

Give unto the computationist that which is computers and to the mathematicians Mathematica

There exists another important reason for why the average modern mathematician doesn't value transaparency in her software as much as she should. Simply put, unless one works in numerical methods or one of those disciplines where you live always close to computers, the average modern mathematician doesn't have a very strong computational background. Maybe she knows how to use some specific mathematical packages and knows sometimes a few things about a coding language like C or Java, but from here to possessing intimate knowledge of how a computer works and to have sufficient curiousity so as to sit down and read some software's source until she assimilates it completely, there's a long stretch. Most mathematicians are not too interested.

This makes the task much harder for those of us who are interested. Yesterday in the Mathematica presentation, I saw two problems solved that have been giving me difficulties: interpolate with quadratic surfaces scattered data and then integrate those data. The idea they mentioned to use Delaunay triangulations was an obvious step that I had already taken, but from there on and how to find interpolating surfaces of order higher than one, the problem becomes more complicated. Someone at Wolfram Research has already solved this problem, has already coded it up, and has already hidden it inside Mathematica's guts for as long as copyright law is in effect and until someone else discovers it independently.

It's very sad that so many mathematicians are not interested in knowing down to the last detail of the functioning of software like Mathematica, or at least to be able to do it in principle if they so wished. I understand this attitude regarding our more day-to-day mathematical activities as regards to results and their proofs. None of us, I'm sure, always reads every proof down to the last detail for every result during our usual going-ons. Even so, we accept some results as true because we know that someone else undertook the chore of scrutinising their proofs, and we trust that they did this competently. I have never read the Fermat's last theorem's proof, but not because of this do I doubt the validity of this result. If someone proposed to me a counterexample to this theorem, I would not bother with performing the necessary calculations to prove that the supposed counterexample isn't one.

Keeping with this analogy, not many of us would accept as easily as we accept Mathematica the idea that it's ok to hide the details of proofs and use the results anyways. If someone were to only offer, "for the proof of Fermat's last theorem, we proved enough special cases of the Taniyama-Shimura conjecture and the rest of the details are the 'intellectual property' of Andrew Wiles", none of us would accept this as a proof of Fermat's last theorem, as if broad strokes were enough. But this is exactly what we do when we deem it acceptable to use Mathematica, for a computer program is every bit a sequence of precise mathematical statements as is every line of a beautiful proof such as Wiles's.

I think that the last time that we accepted these practices in the mathematical community was in Fermat's other statements or maybe in the habits of Tartaglia and Cardano to solve polynomial equations without disclosing their methods. The modern tendency I see in mathematicians to tolerate this again gives me the impression of a regression to mathematical feudal middle ages, where the feudal lord is Wolfram, Maplesoft, or Mathworks and we are all its serfs.

Source code is the least they can give us

I want to say that obtaining source code is only the first step. In order for a software package to satisfy the requirements of free scientific collaboration, besides source code we also need the legal freedom to share this code with our colleagues, to use it for any purpose, and to modify it if it were necessary.

We cannot generate our own code but demand that whoever wants to verify it must first submit to the legal terms of third parties like Wolfram, Maplesoft, or Mathworks. This should not be our standard. It isn't an option either to live outside of these legal boundaries, for even if it seems that nobody is interested in defending their software's copyright, eventually someone does when they see enough profits with a legal threat. If we have the habit to share proprietary software as if it were free, eventually this habit will bring us problems when we go to an institute where they do defend copyrights for fear of legal repercussions. It's not a long-term solution to break copyright unless we have the stamina to perform an act of civil disobedience and to do it constantly in any part of the world where our mathematical and scientific labours may take us.

Free software should be the only acceptable route for our international mathematical community. Completely free. Our mathematical results have almost always been free except for isolated cases like Fermat, Cardano, and Tartaglia, and they must stay free. We must break our addiction to proprietary software as soon as we can. This should be our eventual goal.

I fear the Greeks even when they bring gifts.

It's a very common custom among companies such as the ones backing the three big M's to come to institutions like ours, give presentations like the one we saw yesterday, and then give away some licences or at least offer many at discount prices. Obviously this is great business. First, because it's good PR. Doing this, these companies polish their image as promoters of mathematics and science in collaboration with institutes like ours, giving signs of goodwill. Thus, they manage to acquire more users for their software, their ultimate goal.

For me this is a sickening practice. It's the equivalent of a tobacco company handing out free cigarette samples in hopes of creating addicts who will turn out a profit for their lifetime, even if this addiction occurs without the company's blessing. Or in the words of Bill Gates, "as long as they are going to steal it [sic], we want them to steal ours. They'll get sort of addicted, and then we'll somehow figure out how to collect sometime in the next decade."1 I know that the most probable thing is that just like we do with Matlab and Borland Builder here at CIMAT, the gratis licence they gave us yesterday will seem for us enough so that every student and researcher at CIMAT, and soon we'll see Mathematica installed in almost every computer at CIMAT and FAMAT [Guanajuato's undergraduate mathematics school next door to CIMAT] in violation of this licence without any scruples.

Please understand my position. I don't think either that it's immoral to break copyright2, even if it's illegal. Here the problem is that this will create for us a Mathematica addiction that some day they'll charge us for, if not in this country and this mathematical institute, then it'll happen elsewhere. Wolfram knows this, as well as Bill Gates and others know it. Besides, it's not very good for business to get overly Draconian and vigourously defend copyrights in an institute like CIMAT. It's better for business to turn a blind eye, apparently in a benevolent manner.

It is difficult to abandon any kind of dear and often-used software and replace it with something else. It truly is an addiction. I am telling you because I have lived it and resented it. When I was studying in Canada, from our very first undergrad classes they fostered Maple in us. After all, in Canadian institutes there is a certain understanding, and almost all of them have Maple licences available to all of their students. Once I came to CIMAT and saw that I didn't have the same licences that I enjoyed in Canada, I realised that I had an addiction to software that I couldn't use everywhere in the world. Breaking its copyright didn't seem like an adequate long-term solution. I was very annoyed when I understood that I had been the victim of very subtle and very machiavellian marketing. It took me several months, almost years, to completely achieve my transition from restricted proprietary software that I won't always be able to use to free software without such restrictions.

Now I won't use software whose source I can't analyse, that I can't modify, and that I can't give to any person for them to legally install and use for anything. There is no way that I will ever again use proprietary software.

What can we do now?

Today there are many very good free software mathematical packages with various objectives and sophistication. Amongst them we find,

and there are many others. These programs are at various stages of development, where SAGE is probably the most promising opponent for the three big M's. There are frequent SAGE conferences every year, and its lead developer, William Stein, has a strong commitment to free software and shares many of the opinions I present here.

I offer these examples in order to support the idea that there is no reason why we can't expect as much quality and functionality from free software as we see in proprietary software. At least in in some areas, free software has already achieved this goal, as is the case with R for those who do statistics. We are no longer working in an idealistic vacuum. Free software is a viable alternative, and we should be working towards it.

Something that's very sad is that there are so many people contributing code to the three big M's who are not employees of the companies who make this software, but ordinary mathematicians who have some interesting in programming and who give back some code to the community. It's lamentable that this indicates we have the necessary geekforce for creating our own code, but we're distributing it in a non-free manner. Let us remember that at least Maple and Matlab begun and still are for the most part the work of many grad students eager to generate more content for their theses. How could our mathematical software landscape be today if all these students and all these volunteers instead were collaborating with free software? You will say I'm a dreamer, but this is what I want to see some day. I am collaborating myself with QtOctave, a GUI in development for Octave, and I'm its Debian maintainer.

What we should be doing is using and generating code by mathematicians for mathematicians. What we should be using and generating is free software. We deserve it, and our art/science, mathematics, deserves it too.

Yours forever free,

— Jordi G. H.

1 I object to the term "steal" in this context, as if sharing software were analogous to stealing a car or a loaf of bread. Rather, "stealing" software is like stealing a television show from another viewer who's seeing the same show as I am at the same time. Wikipedia has a preliminary discussion on non-rival goods

2 I know that in the past I have presented a position where I seemingly suggested that it was immoral. I wasn't clear back then, and my position has changed somewhat. What I wanted to say is that perhaps it could be immoral to break copyrights, but in case that we decided that it wasn't immoral after all, then we should do it bravely and up front as an act of civil disobedience until they change copyright laws. This is what The Pirate Bay does. Judging by what people tell me when they see me, this interpretation of my former opinions is not very widespread.