wstein at gmail.com
Mon May 26 01:23:10 CDT 2008
Hi Maxima (and Sage-Devel),
This email is about the thread
about combining Maxima and Octave in the
same environment so that one can do numerical and symbolic computation
without having to reinvent the wheel and implement everything in both
of those systems. Not surprisingly, I think such collaboration
is a great idea. Since the thread discusses Sage, I thought I
would make a few comments.
> > Where does sage come into this discussion?
Sage includes interfaces to Maxima and Octave. One can use
both systems from within Sage and pass data back and forth.
We have made _massive_ use of Maxima in Sage to date (note
that Sage includes Maxima). So Sage is a proof-of-concept that
there is genuine value in building community, collaboration, and
cooperation between open source math software projects.
Richard Fateman responded:
> I guess they would like to be used instead of Octave, Matlab, Maxima, ... .
The Sage project would like to provide for free a viable open source
alternative to Matlab, Mathematica, Maple, and Magma for people or
situations where those systems would otherwise be the only
serious choice. Getting people to use Sage instead of Octave
or Maxima is emphatically not one of the goals of the Sage project.
With respect to other open source math projects, the goal is to
foster a very strong environment of collaboration and cooperation.
The better open source (math) software is, the easier it will be
for us to together provide a viable alternative to the commercial Ma*'s.
> I think that the Sage project people have their own ambition to become the
> centerpiece of mathematical computation,
Our goal is to unite the open source world, fill in any gaps that must be
filled in, and provide a free viable alternative to Maple, Matlab, Mathematica,
and Magma. Genuine success at this would likely result in Sage becoming
a centerpiece of mathematical computation.
> and underestimate the difficult of reprogramming everything.
We are way too lazy to reprogram everything. That said, when all existing
open source software is way way behind the combined power of the
Ma*'s at something, the only choice is to do the work to implement that
functionality. Unfortunately, that's just the way it is. Wishful thinking
> They seem to be very heavy on abstract mathematics
> and the systems that assist in various "applications" to pure math.
Indeed, Sage is a program that has unusually extensive capabilities
related to serious research in pure mathematics . This is necessary
to provide a viable alternative to Magma. There is no way around
the requirement to have such functionality.
> Their view of Maxima is somewhat jaded because they insist on using CLISP, even if
> it is slow: they require (for no defensible reason, in my view) that they
> can only use a lisp system that can be compiled by them on every targeted
> machine. Thus Maxima is relatively slow.
Since you say my position is indefensible, I feel compelled to clarify this
position. In particular, I hope to clarify our requirement that we only use
a lisp system that can be compiled on every supported machine, and argue
that this is a reasonable requirement to make. However, this has to be
put in the more general context of building the entire Sage system.
One of the basic design principles of Sage is that normal people
can build it from source easily on *their*own computer. Since
Sage ships in total about five _million_ lines of code, this is a
tremendously difficult challenge.
There are many benefits to this design principle:
1. It makes it easier for people to become Sage developers by
reducing a massive technical hurdle.
2. A user who has built Sage form source on their own system is
confident that if they want to change something *anywhere* in Sage,
down to the most atomic level, then they at least won't get tripped up
by major build system problems. Users of open source software
have grown to expect this.
3. By far one of the biggest problems in combining several
math software systems together turns out to be that changing
versions numbers, interpreters, etc., even slightly has potentially
massive repercusions, thus potentially greatly lowering the quality of
the overall system. Since Sage builds everything it relies
on together, we can mitigate this quality problem.
> Some people here and about are helping them by trying to compile Maxima with
> ECL, instead of CLISP.
> This appears to me to be a distraction.
It puzzles me that you criticize the hard work of Robert Dodier
and Juan Jose Garcia-Ripoll. I strongly applaud
their efforts to improve the quality of ECL (a lisp implementation),
and improve the quality of Maxima (by porting it to run on ECL).
Porting software and getting major software to
run on an interpreter is critically important to improving the
quality of that software. This is one reason why
porting Sage to Solaris, OS X 64-bit, Cygwin, and MSVC
is such a high priority for the Sage project right now.
> Sage's goal appears to be to displace Maple, Mathematica, Magma, and Matlab,
> all commercial systems.
If Sage were a viable open source free alternative to Maple,
Mathematica, Magma, and Matlab it would likely result in
changing the positions of the Ma's as a side effect. I certainly
hope those systems don't go away though. For one, I've personally
long been a serious Magma user and will stay one, and from
the point of view of doing research I know it is tremendously valuable
to have more than one math software system in which to do computation.
I want more math software out there, not less!
> See http://modular.math.washington.edu/sage/
> That page doesn't SAY that its goal is to displace Maxima or Octave or Axiom
> or ....
> It would be inconsistent with their philosophy to displace them because
> those are already free, and thus there would not seem to be a reason to
> displace them.
> So instead the idea is to essentially eat them up or to cover them over with
> a Python-scripted language of the SAGE project.
The goal is to create quality tools so that I and many others
can do what we want in our research and teaching. It is NOT to
"eat up" open source math projects.
> At that point it becomes a question of
> SAGE has accumulated more momentum than some other projects, but it is still
> The world of scientific software is littered with noteworthy projects
> defeated at some point. Will being free (speech, beer)
> be the key that eluded so many others?
> And since Axiom and Maxima and ... are already free, is there some extra key
> that W. Stein and company have found that will make it all work?
I don't believe in silver bullets; success is all about timing, people,
and honest hard work.
> Perhaps others can explain it better, but what I see as the proposed key: an
> earlier internet-based-coordinated group of enthusiastic volunteers who know
There are definitely a lot of enthusiastic volunteers (thanks!). But that's not
where Sage came from initially -- it came from me (and David Joyner and David
Kohel) personally working very hard on it; then volunteers later came
liked what they saw at a purely technical level. The quality and breadth has
increased dramatically as a result.
Also, to give some additional perspective to what makes Sage different,
here is a list of 10 people who will work fulltime on Sage this summer:
*All* of them will be paid by the NSF, Google, Microsoft, a Philanthropist,
and NASA. I think 80% of them didn't know Python before deciding to
get involved with Sage.
> For further elaboration, see
> which dates to 1996, and see if you see SAGE in it.
That seems like mainly an argument that things like Sage
will surely fail or never happen, but maybe I'm missing the point.
"The adoption of local or free systems instead of commercial ones may cost
more for support than the software license fees. [...]
I doubt if it has ever been the case that you could save money by
building ANY software that someone else was willing to sell you."
Associate Professor of Mathematics
University of Washington
More information about the Maxima