documentation of source?



Sheldon Newhouse wrote:
> Hello,
>  I have some ideas that I invite comments on.
> 
> 1. I don't know how many developers of maxima there are at present. From 
> the mailing list I expect that there not more than 20 or 30.
> 2. I don't know the ages of the various developers, but if one wants to 
> insure continued development for the long term, it is important to bring 
> in young people and get them started on the development.
>    This involves a lot of expertise, of course-lisp, tcl-tk, 
> mathematical knowledge, etc.  Obviously, different parts of the package 
> depend on very different kinds of expertise.
> 
> 3.  Even with the required expertise, one does not want to re-invent the 
> wheel.  Some of the source files are very complex, and it takes 
> considerable time for even expert programmers to understand them.
>    Of course, some people have already spent much time understanding and 
> improving certain parts of the program. 
>   In addition to making continued improvement, bug-fixes, etc., I think 
> it is important to set up some way to train new people to come in and 
> help with the development.
> 
> So, this is a suggestion that people take some time away from 
> development to document the files which already exist.  The 
> documentation could even be in the source files themselves.
> 
>  One standard answer is: "Ok, please feel free to contribute to this.  
> It will be appreciated."
>  This is certainly one reasonable answer from busy people.  But I think 
> it is much like asking others to spend the same amount of time on this 
> or that project, maybe more, than people have already done.
>   It is a recipe for slow development.
> 
> It would be much healthier for developers so inclined to add descriptive 
> comments on routines "as they do the development." 
> 
> Perhaps I am biased, but in my profession (university teaching and 
> research), we are forced to do this in explaining various things to a 
> new crop of people on a regulat basis.  Sometimes it is painful, 
> sometimes boring, but the benefits certainly appear when even a few of 
> the recipients of the effort extend and improve the current status of 
> things.

I'd like to go one step further and suggest that someone write a 
"getting started in maxima development" document. Perhaps 5 pages or 
less, which describes the basic format of maxima data structures (really 
specialized lists I guess), and the basic utility functions for 
constructing them, simplifying them, etc. In other words, what are the 
most important things you would want to know to begin working on the code.

I am actually a fairly knowledgeable common lisp programmer, but the few 
times I have looked at maxima internals, I simply don't know what is 
going on because maxima has its own way of expressing everything.

I thought i'd seen an introduction like this at one point, but it does 
not appear on the documentation page for maxima.