How do you expect Wolfram Research, Maplesoft and similar deal with such
issues? They must hit them too. I suspect they have a few nightmares with
this, but the best way is probably to have decent documentation. If code is
well commented, and has references to papers where the algorithms are
published, then it sill probably be maintainable.


Actually I've had the same "literate programming", deep documentation discussion with developers from Wolfram and Maple. According to them, neither program has good internal documentation. They can rely on the fact that they can pay people to maintain
the source and the "knowledge continuity". I have begged them to improve it.

Why would *I* care? Because of the future. Think about things in the long term.

There are very few companies that last 50 years. Indeed, Maplesoft was bought recently. What would happen if Wolfram and MapleSoft died? Well, in the worst case, the failing company just disappears. Nobody can run MMA or Maple code anymore. This creates a *huge* black hole in computational mathematics. (Think Derive and Texas Instruments).

There is the possibility that the code might be released but it is a very slim chance. Companies that go bankrupt get their assets sold. The source code would be the major asset and there would be a lot of people wanting to get paid so they won't likely make
the code open source. (Think Macsyma and Symbolics)

But lets assume the best case, that MMA and/or Maple became open source.
Here I have a great deal of experience because *I* got the open source version of Axiom which was a very large, very complex program. Axiom was sold commercially as "one of the big 3". Internally it was mostly code with about 3 lines of useful documentation. The "released" version of the code lacked the front end (saturn), the back end (nag libraries), the new compiler (aldor), and required a running Axiom in order to build Axiom so it had to be restructured to self-bootstrap.

The only reason that Axiom came back to life is that I was one of the original developers and had a deep understanding of the system internals. I'm not bragging, I'm simply pointing out that it is difficult to organize and repair a "million things of code". Even with my deep understanding of internals (some of which I wrote) it still took a year to make it available. I found that I couldn't understand my own code and I always
try to write dirt-simple code, unfortunately without comments.

Now imagine that someone handed you the (partial but mostly complete) source code for
MMA or Maple. And imagine that it contained 3 useful comments.
Is there any chance of rebuilding these programs into runnable systems? I think not.

Now imagine that MMA and Maple were fully literate and could be read like a novel.

Which would you prefer?

Which scenerio benefits computational mathematics in the long term?

Now apply the same lesson to Sage. Assume that 30 years from now, none of the original developers are connected with the code and there is no one to ask. It will happen.

Tim Daly

--
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to