On 3/16/2011 7:04 AM, David Billinghurst wrote:
> I suggest:
>
> * subscribe to the mailing list
> * build maxima from cvs source using at least two different lisps.
>
Sorry David,
I quite disagree with this. If you want to write a Lisp program that
adds a feature to Maxima, you should start
with some entirely working distribution, and install it on your
computer. You can write a Lisp program $foo
which can be called from Maxima as foo( ...).
Or you can write programs entirely in Maxima's own language.
I also suspect that writing documentation for programs that you have not
written and are just learning about
is not a good idea. Here's why:
1. Assume you don't know what is going on, and just read the program
and think you've figured it out.
What are the chances that you are wrong, and your "comments" will in
fact be, to some extent incorrect.
2. Subsequent viewers/ debuggers of the code will not only have to
overcome the bugs in the code, but
the bugs in the COMMENTS.
There is no "developer's manual" but there's lots of information. Some
of it is in the code and some of
it is in published papers, and some of it is in on-line documents, and
some is in textbooks, and some
in course notes, e.g. cs282 at Berkeley, when I taught it. If you are
messing with the simplifier,
see also
http://www.cs.berkeley.edu/~fateman/papers/simplifier.txt
The biggest mistake made by people trying to contribute to computer
algebra systems is, I think,
to jump in without doing some research about what has been done and what
needs to be done.
One of the simplest things to do is to compare a different CAS to Maxima
and note how they differ.
If the other one is "better" can one make Maxima just as good or even
better?? Especially if you
have a working version of the other system, you can see it in "action".
For example, if you have Mathematica available, look through the
commands. One that is
missing from Maxima that would be interesting is its "Reduce" command.
Or find something in the literature that is not in any CAS but is neat.
(I looked at putting chebfun ideas into
Maxima.)
Approximately the last thing I would suggest is struggling with building
Maxima from scratch, since for a
novice it is either trivial or impossible. It is trivial if the
instructions are correct and work. It is impossible
if, well, if it doesn't work and you don't know how to make it work
because you are a novice.:)
And it is entirely unnecessary since you should have at your fingertips
a working version to download.
RJF