I think this post is exceptional in that it questions at the base level
what Maxima's role should be in the math/science domain for the end
user.
I believe it would benefit the Maxima project if it were to refine its
statement of being in the wiki or main page or both from,
"Maxima is a full symbolic computation program. It is full featured
doing symbolic manipulation of polynomials, matrices, rational
functions, integration, Todd-coxeter, graphing, bigfloats. It has a
symbolic debugger source level debugger for maxima code. Maxima is based
on the original Macsyma developed at MIT in the 1970's. It is quite
reliable, and has good garbage collection, and no memory leaks. It comes
with hundreds of self tests."
to better fit itself within the gnu world.
First to give a small argument as to what and why such areas should be
defined and openly displayed. The gnu/gpl world is huge. There are
many people who believe in it for personal reasons or who are making a
living as career programmers, scientists, and engineers by using it.
The scientific gnu community is huge, from python, gfortran, gcc,
octave, maxima, axiom, haskell, latex this list goes on and on, and all
of these projects are contributing in their way to the tools available
to the mathematician, scientist, and engineer, who can use these tools
to help with their projects. If the developers of the tools recognize
that the other tools are also being developed and act upon this fact
there is a strong probability that all tools will work better together
and that the tools will be more useful for a given user.
Now a few points:
Should we loathe redundancy? That is, should we ditch the screwdriver
because the drill can do the same job? Probably not, and this is
because they each have a niche they are best suited for. Such a niche
is perhaps even unknown to the developers, at least initially, but
becomes clear in an attempt at using a given tool(s) for a project. Now
screwdrivers, and drills are not the best analogy to software because
while software evolves, usually, the screwdriver you use does not,
usually. My point remains however, software redundancy is not
necessarily redundancy as most tools are best suited for a given task
even if there are other tools that can accomplish the same goal. How
redundant should Maxima be - in the domain of gnu? ( Note there is
always the point to be made that the drill may break and so in order
that we are not left stranded keeping the screwdriver is a good
reasonable idea - but I am not interested in this point right here)
This is a point for Maxima developers to define and redefine - but I
think a stab at this could help everyone involved.
So who will use Maxima and what is Maxima trying to be? Is this
software primarily intended for the student studying intro. calculus,
the computational chemist or physicist, or the algebraist? While one
could say it is for everyone to do all sorts of math "stuff" with, the
problem of this assessment lies with what else exists for these people
to solve the same problem with. I know Maxima doesn't make my coffee,
at least at present, but should I develop a program for it to do so?
The point to be made is, Maxima should have a clear explicit objective
that includes the intended user(s) base.
The argument that because Maple, or Mathematica can do something, Maxima
should also, is very faulty. Maxima is in a different domain of
software to these proprietary beasts (, although Maple does have LAPAC
routines etc built in etc.). Maxima has at its disposal all of the gnu
domain. Whether Maxima's developers choose to create redundancies by
creating packages specially for some numerical task etc. is not at issue
until Maxima's purpose is set out. Whether redundancies or easy to use
pipes to other gnu software - such as octave, and R - or both are
created is at the mercy of the developers. However the intended use of
Maxima if discussed and stated explicitly would help the active
developer into deciding whether a pipe or a package was more appropriate
or if perhaps both were for giving Maxima a particular ability.
To conclude the original post and responses point to an observed -
whether it really exists is not at issue - vagueness of purpose for
Maxima. This could be remedied by a short discussion by the developers
and an ad hoc statement created which upon criticism could easily be
ameliorated.
My apologies for this piece of writing was not well organized and is
rather long and comes from only a user and not a developer of Maxima but
I could not resist writing it.
Yigal