Tuesday, May 13, 2008

'Socialist' Software

One of the dangers of getting old(er) is a marked propensity to talk of the (usually) non-existent 'good old days'. In this post I am not going to talk of the good old days (nor am I going to tell you my age ;-) ) but of a good old piece of software called MACSYMA. MACSYMA was developed at MIT in the late sixties and was the first such attempt to have a program to do symbolic computations. MACSYMA was legendary in its day, not only for being a pioneer in its field but also because of the vastly different types of symbolic manipulations it could do (for its time). It was a mammoth package written in LISP and was made freely available to anyone who could dial into MIT to use it. (It was followed by other software like REDUCE which were however not free). In the early 1980s when I started using MACSYMA for my thesis, I found it indispensable. I would log into the MIT computer at night (because of lower charges) using an acoustic coupler and the phone handset. MACSYMA helped me do many of the painful infra red divergent integrals that are ubiquitous in QCD (my field of research), regulate them, cancel divergences and get finite answers. For its time it already knew dilogarithms (and in fact, polylogarithm) and that was a god-send. It even had a preliminary High Energy Physics package for doing loop integrals and traces of gamma matrices written by Terrano and Wolfram, one of whom (no prizes for guessing who) was intimately involved in MACSYMA development. The MACSYMA license was eventually transferred to SYMBOLICS who did a very poor job of marketing it. From 1998, the MACSYMA source code under the avatar of MAXIMA (to avoid copyright problems) was made freely available under GNU Public License by William Schelter who maintained it till his death in 2001. Since then a band of MAXIMA enthusiasts has kept MAXIMA alive, though it had long ago lost its preeminent position in the world of Symbolic Manipulation Software. Today its place as been usurped by MATHEMATICA (among others like MAPLE, MATLAB etc.) - a mammoth enterprise of Wolfram Research, Inc consisting of armies of programmers creating newer and more and more powerful modules to address more and more sophisticated problems. Frequently these modules have bugs and they are promptly addressed in the next release of MATHEMATICA which users are then expected to buy. As a result of its virtual monopoly in the marketplace, most people including in my field of HEP, write extremely sophisticated programs using MATHEMATICA programming language as the base, to do calculations that would be impossible to do by hand. However the price one pays for this is astronomical. The very reason for this article is that recently we decided to upgrade MATHEMATICA to version 6 with 10 users (from MATHEMATICA 5 with 5 users) and the cost came to more than Three Hundred and Fifty Thousand rupees. (And this for an upgrade!) This all but puts it out of reach not only of individuals but also poorly funded institutes and universities. I have heard this complaint not only in India but also many organisations in Europe and the USA. MATHEMATICA today is a money-making machine with little if any academic ethos attached to it. Stephen Wolfram's inspiration for MATHEMATICA however clearly originated in MACSYMA in which he was one of the earlier developers. Given the level of development, there is no way for MAXIMA to compete with MATHEMATICA is this respect. Clearly a time has passed when publicly funded software development was expected to cater to the needs of the community, irrespective of its funding status. Of course there still is a lot of free software out there -- FORM, Psilab, and so on but almost all of it is for very specialised purposes, just as another free software SCHOONSHIP (a contemporary of MACSYMA) was for doing those horrendously difficult Supergravity calculations. And the ideology of free software lives on in GPL and the whole Linux movement. MACSYMA (or present day MAXIMA) is now part of the Debian package and the MAXIMA site has links not only to the source code and binaries but also quick start examples that will set you on your way. I still find MAXIMA useful for doing integrals, products, differential equations, and matrix manipulations which would take too long by hand and I urge anyone reading this to try his/her hand at it. Be warned though, it doesn't have all the bells and whistles and colours that one has got so used to in the mathematica interface. MACSYMA lives on, but only in the world of some die-hard old timers who will not let it die. I would like to end with two simple exercises that show up the some fundamental differences between the two. There are many more but this will suffice. I do two integrals in both MAXIMA and MATHEMATICA -- the responses are illuminating. Here is the MAXIMA output Notice that MAXIMA carefully distinguishes the n = -1 case in the first integral, and in the second case the sign of the constant 'b'. You might argue that in this case trivially sin would go over to sinh when 'b' changes sign, and there is no need for the software to nitpick. However where these are embedded in very large programs, it is important to carefully define the range of the various variables and constants -- you don't want to have to go in and do these changes by hand. MAXIMA forces you to think carefully about your expression before calculating it. In comparison, let us look at the same two integrals in MATHEMATICA MATHEMATICA just produces a standard output (which is technically even wrong for n = -1) . It expects you to worry about special cases. Its the difference between a software created by scientists for scientists and software created for scientists by a bunch of paid programmers.

10 comments:

Rahul Siddharthan said...

If the interface is the problem with Maxima, there are a couple of options:
wxMaxima
TeXmacs mode for Maxima (tutorial)
I haven't tried either of these (and have never been a Mathematica user either; I have used Maple years ago but was never into computer algebra.) So I can't comment on how well the Maxima interfaces do in comparison.

Rahul Basu said...

Its not just a matter of the interface (I have used xmaxima and as far as interfaces go, the MATHEMATICA interface is very convenient and extremely sophisticated) -- its the way the program works. I have just updated my post with a couple of fairly trivial examples to highlight the differences.

AMOK said...

"It's the difference between a software created by scientists ...a bunch of paid programmers." We will have to send you to the (l')Hospital for this statement.
Kind Sir Basu, it is better to be a (highly) paid programmer than an unpaid programmer. Indeed the software is written for scientists by these talented and (highly) paid programmers, and which scientist hasn't heard of l'Hospital's Rule? Applied judiciously to the aforementioned penultimate example of the integral of x^n, it becomes instantly evident that in fact the result is correct for even n+1=0, when inspected with the proper limiting eye, such as one possessed by scientists and so known to the talented programmers. The extension of this line of thought for the final example is left to the reader ( or author ). Please offer your advice.

Rahul Basu said...

Alas, kind Sir AMOK, I assure you I went to (l') right Hospital -- however if I need to run a software to do my analytical work and then 'massage' it separately and manually by l'Hospital's rule or any other rule, what pray is the use of this software. Ditto second example. As I said in my blog imagine these as a small part of a large expression. One might not even realise that 'n' or 'b' might be changing sign or value sometime -- MACSYMA forces you to be more vigilant in general about signs, values, which Riemann sheets etc. If I can think of some more transgressions of MATHEMTICA that will satisfy even you, I will put in an update.

Incidentally is it not l'Hopital rule (with half a dozen accents which I am unable to get on this keyboard) named after Guillaume de l'Hôpital ?

AMOK said...

Sir, many thanks for your response. It is true that there is an advantage to having the Subject Matter Expert (SME) as the programmer. This enables scientists to dance through with ambiguous statements involving analytic continuations, complex numbers and Riemann sheets without running afoul of the bits and bytes. Our story of l'Ho(s)pital is not over yet though. Whoever said you could spell William as Guillaume? It is spelled both ways.

Rahul Siddharthan said...

amok - you are correct about l'Hospital (it was the conventional spelling in his time, and many words subsequently lost the "s", eg, hoste->hôte, vestement->vêtements; the caret has essentially no phonetic significance and merely indicates the lost "s"). But you are wrong about William (the name is very rare in France). If you really wanted to Anglicise it, you should call him "William of the Hospital" but then nobody would understand you.

You are also wrong about the outre-manche. If Rahul Basu had indeed been honoured by Her Majesty and was qualified by citizenship to change his appellation, it would be "Sir Rahul" and not "Sir Basu".

AMOK said...

Sir Basu, it has been made abundantly clear that no honour from Her Majesty has been conferred upon you. Best of luck for the future, we shall support you fully in this matter.

It has also become clear that l'Hospital:l'Hopital::William:Guilluame is very far from being a true statement, seeing as the first ratio is much, much greater in France, being practically one, whilst the second is practically zero, in France.

Enlightenment achieved, for one, and all, Sire.

Rahul Siddharthan said...

AMOK: Enlightenment has not been achieved. l'Hospital:l'Hôpital is practically zero in France, though it was practically 1 when the gentleman under discussion was alive (and when his name was imported into English textbooks), over two centuries ago.

Rahul Basu said...

The intellectual depth of this exchange has left me bereft of speech..

AMOK said...

Sire Basu, we thank you for your scintillating blog.