What's up next?



Hi gang!  Now that we are almost to the 5.9.1 release (I think Vadim
killed the last of the Windows problems?), I was wondering if we could
gaze off to the horizon a bit? 

5.9.2 is well defined - Downcase the source code and handle case
sensitivity issues.

5.9.3+ is a tad bit more fuzzy.  The plan shows fixing up the share
packages is on the menu for 5.9.3, but that's all that's there.  I'd
like to propose a slight variation/add a few things, purely as
suggestions.

a)  I don't know what sort of effort is required to address most of the
mathematical bugs in the sourceforge database, but perhaps this should
be the primary focus of the 5.9.3 release, with share packages to
follow later?  (I can't remember if somebody already suggested this,
but I think they did) I suppose many bugs are fixed but not closed, or
appropriate for later handling, but perhaps we should make a scan and
hunt for core mathematical issues as a first priority, as well as
closing any that have been fixed?  Once case issues are handled this
seems like the time to handle what are fundamentally the more serious
defects.  Share packages for the most part can wait, although I would
like to see us handle whatever needs handling to get nset into the main
body of Maxima.  

b)  One other thing I would like to see at the 5.9.3 stage is the
incorporation of the work that was done some time back to create a
maxima-user package.  IIRC a good start had been made with working
code, leaving a few more subtle issues to work out.  I would like to
see this finished and incorporated before we go too much further, since
IMHO it represents an important step forward in organizing Maxima.  I
would also like to establish at the same time the policy (although at
this point not doing all the work on every share package) of having
maxima share packages load as lisp packages.  This is a) relatively
simple to do because the share packages are already reasonably self
contained b) will make the packages easier to document from a user vs.
developer standpoint (a user only needs to know about exported
functions) and c) will allow packages to define things as they like
within their own package without worrying about conflicts in anything
except the exports.

As I said these things are just my own thoughts, but this seems like a
good point to start the ball rolling on figuring out what happens past
the downcasing (which will hopefully be relatively straightforward).


Very long term, I would like to see [warning, highly speculative]:

5.9.4:  Document and understand core Maxima operation (i.e. how does
maxima take an input and return an output - basically a high level
flowchart) and make design decisions.  Should we add support for rings,
for example?  Most importantly, I feel at this point we should
establish things like a checklist and guide for people adding new
functionality to Maxima.  See this thread
http://www.math.utexas.edu/pipermail/maxima/2004/007711.html and Dr.
Fateman's paper.  Perhaps this should be hammered out even before the
bugfixing scan, but I suspect the more practical track is to have 5.9.3
working as well as possible, then tackle this issue.  The goal would
be, at the end of 5.9.4, to have a Maxima where we have the ability to
add new functionality in a systematic way.  The benefits of doing this
earlier rather than later are many, not the least of which is not
having to redo improvements in the future.  Also at this stage, or
perhaps in 5.9.3 even, we clean out cruft. Personally I would also like
to divide up the super-large Maxima lisp package into smaller packages,
but that's just me.

5.9.5  At this point we establish a concrete policy of documentation at
the source code level.  Once that is established, over time the system
can (hopefully) be gradually documented as people work with various
parts of the system.  New code would be documented upon inclusion. 
Before 5.9.5 try to have at least the most important parts of the
system documented.  If packages end up being used, for each package
exported functions should be documented by 5.9.5.  Internal ones could
follow over time.  Any known mathematical problems that have survived
this far we should attempt to deal with.

5.9.6  Now that the core system structure and documentation system are
online, whip the share packages into shape.

5.9.7  Stress testing.  Root out any mathematical bugs that can be
discovered.  Identify any kind of undesirable behavior. Expand test
suite as seems desirable.  If possible find a way to systematically
test the software - perhaps the previously mentioned joint test suite
with Axiom might be appropriate/useful here? Bit hard to pick a release
date for this one - perhaps something will suggest itself later.

5.9.8  Now that math bugs and system behavior are cleared up and
cleaned up, user level documentation should become a priority.  Use
available experience with 5.9.7 and mail list archives.  Finish
Maximabook, update info files, and in general document what isn't
documented.  When 5.9.8 comes out we should have good documentation.

If 5.9.8 holds without any significant problems, we fix whatever minor
stuff turns up and then release our first stable release, 6.0. 
Presumably more bugs will turn up as more users become interested - fix
and maintain those in the 6.0.x tree.  Ideally no major shakeups will
be needed in the mathematical core of the system, so the math fixes
needed should be applicable to both the 6.0.x tree and the 6.1.x tree,
at least for a while.

6.1.0  Here lots of new work begins.  Items I would like to see here
include new GUI (preferably McCLIM ;-) with our own custom taylored
plotting solution, PDE solving capabilities ala the Maple package, and
using mockmma+new work to assist in the translation/porting of
signficiant Mathematica and Maple packages to Maxima.  Undoubtedly
there are many more.  My tenative thought is that once we have a
stable, cross platform, full featured GUI with excellent plotting, we
declare 7.0 stable.  Beyond that who knows :-).

[DISCLAIMER:  All this is just me talking.  I'm probably way off the
mark - the purpose here is to start discussion.  This is NOT, except
for 5.9.2, where the project is known to be going.  So discuss, even if
you just want to point out how silly I am!]

CY


		
_______________________________
Do you Yahoo!?
Shop for Back-to-School deals on Yahoo! Shopping.
http://shopping.yahoo.com/backtoschool