*
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 copyright**^{2}, 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.