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. :) --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---
