[Top][All Lists]

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

Re: [Axiom-developer] Nice Fixes! Another go on IssueTracker

From: root
Subject: Re: [Axiom-developer] Nice Fixes! Another go on IssueTracker
Date: Fri, 25 Jan 2008 14:50:45 -0500


>So one should then ask - do I want to create a project that most of the
>people would agree with the course of development (strategy of fixing
>bugs)? Or do I want to create a project that most people disagree with
>the strategy, but maybe in 30 years there is some chance that axiom
>will become very popular. I, personally, prefer the former, because I
>(but that's just my opinion) prefer my project to be joined by a lot
>of people now, not in 30 years.

I have had many projects disappear. Some were commercial products,
some were corporate internal projects, and two were open source
projects (Pinger and RentRoll). I have seen how and why projects die.

How do you keep a project alive after every original developer dies?

I spent a considerable amount of time pondering this question while
I was building Axiom from the code NAG gave me. The answer to the
question, in my opinion, rests with literate programming. Computer
algebra systems are based on research work. In order to understand,
maintain, and modify such systems you need to merge the research
work with the source code. And you need to explain the details of
the algorithm to someone you will never meet.

Unlike other programs a computer algebra system will get the same
answers 30 years from now. It is worthwhile investing in the literate
documentation to ensure that the code is fully and deeply explained.
"Literate", in this context (see Knuth), means that you can sit down
and read the program like a book. You can understand what people
thought before you decide to change things.

The problem is that programmers don't know how, and do not want, to do
literate programs. They like hack-and-slash, little-C-file, 1970s
technology include-file thinking. Hack-make-publish is ok if you want
to build toys for today. Why use noweb at all? It is just overhead for
any project that is not trying to be literate and should be removed.

But if you want a quality piece of polished software backed by
research publications and literate documentation you need to
fundamentally change your mindset.

When Axiom is fully literate people can teach from the source code.
Researchers can read an algorithm and understand all the little
practical issues. Programmers can understand the research that
supports the algorithms. New research can be based on well-documented
sources and easily added to the system. The goal is to have a literate
Axiom be the basis for Computational Mathematics teaching and research.


reply via email to

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