[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Axiom-developer] Doron Zeilberger's backward compatibility rant

From: daly
Subject: [Axiom-developer] Doron Zeilberger's backward compatibility rant
Date: Fri, 5 Sep 2014 19:37:31 -0500

I've long held the view that backward compatibility is vital.
What used to work should continue to work. No piece of software
is perfect and there is always room for "improvement" but we
need to distinguish between bug fixes (which might change results)
and cosmetic fixes (which change non-vital things like syntax).
Not everyone shares this view.

I recently tripped across Doron Zeilberger's home page of rants
which makes for fascinating reading. This one is on the topic
of backward compatibility and open algorithms. See

This is the relevant quote from his "Opinion 47" article


About ten years ago, after short flirtations with Macsyma and
Mathematica, I fell in love with Maple. It was such a neat system, so
open and versatile. For example, Mike Monagan told me how to view the
source-code of most of the available procedures by setting:
"interface(verboseproc=2);" and then, e.g., typing "print(gcd);", to
see how the gcd function was programmed.

This is still the love of my professional life, and it is still far
better than anything else. Even though in the meantime it got a little
Wolframized. First, it is not possible to view the built-in functions,
in whatever (I guess C) language they are written in, but more
seriously, and almost scandalously, IT IS NOT UPWARD COMPATIBLE!

One of the diseases of our current commercial software industry is the
Gatesian sin of making things obsolete on purpose, by making minor
changes. This forces the customers to keep pouring money into the
pockets of the Gateses and other sleazy moguls. By not making it
upward compatible, it forces people to buy the latest (and often
worse) version.

In the case of Maple, however, the REAL reason is not to make more
money, but to genuinely ``improve'' the system. Frankly, it worked
just fine for me until now. If it ain't broke, don't fix it. But if
you do want to improve, PLEASE KEEP IT UPWARD COMPATIBLE!

Maple, that was, and still largely is, a grass roots endeavor, started
in Academia, by such pioneers as Geddes, Gonnet and Char, and
continued by Monagan, Leong, Watt and others, should be sensitive to
to the mathematical wish to be immortal. Because Maple is meant to be
DOING mathematics, and Used by mathematicians to do NEW
Mathematics. In my own work with Shalosh, I write many Maple programs
that Prove things. It is a great nuisance having to adapt the programs
(i.e. the proofs), every time a new version comes out.

Also, if one uses Maple to prove theorems, it is important that ALL
THE CODE, and even the compiler, be out-in-the-open, for anyone to
see. Testing a procedure as a black box is merely empirical

So let's hope that Maple will start to be upward-compatible, and that
it will be completely openly viewable. But, until then, may I
recommend that YOU DO NOT RUSH TO BUY the latest version, unless you
have to, because it is not necessarily any better, and sometimes, in
some respect, it is worse. But if you do buy the latest version, don't
delete the previous versions! Nowadays disk-space is cheap, and there
is plenty of room for past versions. For example, on our system, we
have three commands: mapleV3, mapleV4, and mapleV5. This way, Maple
programs written in the past would be usable in the future.

Perhaps it is time for a new "Maple" altogether, that will start from
scratch, will be completely public-domain And freely available (like
Dave Bayer and Mike Stillman's excellent Macaulay system for Groebner
bases), and upward-compatible.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]