axiom-developer
[Top][All Lists]
Advanced

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

[Axiom-developer] A plea for sanity, forks, Sage, Axiom, Fricas, Open-Ax


From: M. Edward (Ed) Borasky
Subject: [Axiom-developer] A plea for sanity, forks, Sage, Axiom, Fricas, Open-Axiom, Changelogs, etc.
Date: Sun, 12 Aug 2007 12:46:14 -0700
User-agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.1.6) Gecko/20070807 SeaMonkey/1.1.4

First of all, I'm "just a user" -- a working programmer/applied
mathematician (45 years and counting.) I've been doing this since
*before* ScratchPad. Perhaps some of you have heard of FORMAC? I was
working at IBM in Poughkeepsie, NY, when Jean Sammet and her colleagues
released it! And I was there when Aden Falkoff and Ken Iverson built
APL\360. So in terms of Tim Daly's "30-year horizon", I've got about 15
extra years. :)

Here's a quote from the Axiom "readme" (Silver Edition, downloaded with
"git" last night, successfully compiled, but crashed trying to do a plot):

"NAG agreed to release Axiom as free software. The basic motivation was
that Axiom represents something different from other programs in a lot
of ways. Primarily because of its foundation in mathematics the Axiom
system will potentially be useful 30 years from now.  In its current
state it represents about 30 years and 300 man-years of research
work. To strive to keep such a large collection of knowledge alive
seems a worthwhile goal.

"However, keeping Axiom alive means more than just taking the source
code and dumping it onto a public server. There are a lot of things
about the system that need to change if it is going to survive and
thrive for the next 30 years.

"The system is complex and difficult to build. There are few people who
know how it is structured and why it is structured that way. Somehow
it needs to be documented deeply so others can contribute.

"The mathematics is difficult. Unlike other free software you can't
just reach for the old saying ``read the source code''.  The source
code is plain, clear and about as close to the mathematical theory as
is practical. Unfortunately the mathematical theory is enshrined in
some research library where few people will have access. Somehow this
must change. The research work, the mathematics, the published papers,
and the source code have all got to be kept together for the next
generation to read, understand and modify.

"The mathematics is narrow and very focused. This was due to the fact
that, while Axiom is a great research platform, we only had a limited
number of visitors at IBM Research. So there is very little in the way
of, say, infinite group theory in Axiom. We can add it. Doing so will
show up shortcomings in the system.  For example, how do you represent
an infinite object? There are many possible representations and they
depend on your goals. The system will have to change, expand, and,
hopefully, become cleaner as more thought is applied. Scratchpad
changed continuously while it was being used for research and we
expect Axiom to do the same.

"The language (spad and/or aldor) is designed to let you write
algorithms that are very close to the mathematics. However, the
algorithms as presented in the current system have never been shown or
proven (an important distinction) to be correct.  It is vital that we
undertake the huge effort of verifying and validating the code. How
else can we trust the results and of what use is a system this complex
without trust? Somehow we have to extend the system to integrate
program proof techniques.  That is, we have to make computational
mathematics hold to the same standard as the rest of mathematics.

"All of which seems to integrate into a requirement for better
documentation. The key change which developers of Axiom will find with
this version is that the documentation is primary and the code is
secondary. Taking direction from Knuth and Dijkstra the system is now
in a literate programming style. The hope is that the next generation
of developers and users will be able to understand, maintain and
extend the system gracefully. And that eventually papers submitted to
journals (an Axiom Journal?) will be easily imported into the system
with their running code made available automatically.

"There is no guarantee that this attempt to change the culture of
computational mathematicians is going to succeed. But it is our firm
belief that current systems have reached a complexity plateau and we
need to find new techniques to push the envelope.

"In general, we need to consider changes to the system with a 30 year
horizon rather than the current write-ship-debug mentality of software
development. This is, after all, mathematics, the queen of the
sciences. It deserves all of the time, talent and attention we can
bring to bear on the subject."

Tim Daly -- September 3, 2002

OK ... that's Tim Daly's dream. Let's have a look at William Stein's dream.

"By far, the primary goal of SAGE is to create a viable high-quality
practical alternative to Magma, Maple, Mathematica, and Matlab as soon
as possible using existing open source components when practical."

As long as we're on the subject of dreams, if you're interested in (one
of) mine, you can read it at
http://viewvc.rubyforge.mmmultiworks.com/cgi/viewvc.cgi/Rameau/Rameau.pdf?revision=1.1&root=cougar

In short, then, I think we're all trying to do the same thing -- hand
some kind of usable legacy of what I think are three golden ages of
scientific computing:

* the late 1950s -- early 1960s,
* the 1980s, and
* the Gnu/Linux period of today

on to the next two or three generations. (As an aside, maybe it's four
golden ages -- Babbage did achieve some measure of success with his
difference engine, after all, as did Lewis Fry Richardson with a room
full of people integrating PDEs on mechanical desk calculators.)

But as Tim pointed out, there's a lot of work to do, and in the past few
weeks, I've seen an awful lot of complaining go by, *two* forks of Axiom
(or is it three??), and lots of arguments about how a large project
should be "managed" or "led" -- neither term seems particularly
appropriate for what I've seen from the point of view of a user.

So ... can we all just take a step back? Can we agree to "disagree
without being disagreeable?" Can we somehow build all of our dreams --
Axiom, Sage, Rameau, etc.? The way things stand now, I can't tell
whether the torch is being passed to shed light or to burn down a village.

"If we build them, they will come!"

And with that, I'm off to pursue another one of my dreams -- being
gainfully employed in scientific computing for 50 years. :)







reply via email to

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