A few questions about Maxima



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