Fwd: [sage-devel] sage



Mike: 
thanks for forwarding the message.
 I suppose WS can't actually post to maxima at math.utexas.edu without joining
the group.

Lots of separate points I'd like to make, here.

* Will Sage fail or not? there is abundant historical perspective for one or
another kind of failure, but that was then, not now, so who can tell. I
think it is too early to declare Sage a success, though that hasn't stopped
others. It would be nice to have some definition of success or failure to
measure.

* My expectation is that people who want to access Maxima should use Maxima
through an interface that supports ALL components of Maxima. I do not know
if Maxima, viewed through the lens of Sage, will reveal all its facilities.
This is certainly an issue for users of Maple who see it only through the
lens of Matlab's symbolic toolkit.  Attaching pieces of code via pseudo-ttys
in Python does not sound like a robust engineering technique.

* If you or WS thinks that porting Maxima to ECL improves Maxima in any
substantive way,you are entitled to your opinion, but to the extent that
people knowledgeable about Maxima are diverted to debugging yet another lisp
implementation, it is a distraction from forward progress in Maxima, at
least in my opinion. 

.............

* I have been trying to understand my queasiness about Sage, and I think
these messages from Mike Hansen and William Stein and Tom Boothby have
clarified it.

Sage has a "mission statement" and a "philosophy".

> 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.   ...

Sounds good, so why am I queasy?

There are, in my opinion, other open source alternatives [VOSA] (Maxima,
Axiom, XCAS, Octave ...) that could be substituted for Sage in the sentence
above. 

What William Stein may be saying (or rather not saying) is that yes, there
are all these other programs that you can download free and run as
alternatives to the named programs, but we won't mention them since they
are, in terms of our philosophy not VIABLE!

Eh? By the SAGE DEFINITION a system is NOT VIABLE if you cannot compile all
the components from scratch on your computer with free software. Even if you
can do it, the system STILL MAY NOT BE VIABLE if there is someone else who
can't compile it from scratch on one of HIS computers.

To quote:

" One of the basic design principles of Sage is that normal people
 can build it from source easily on *their*own computer. "

So now in addition to defining VIABLE, Sage now defines "normal people['s]"
computers.

Even if you can run Maxima on your PDA or cellphone, sorry, you are not
normal and/or your system is not viable. Even if you can hand Maxima or
Axiom to someone on a packaged KDE CD, it is not viable.

It seems that this definition of viability,  not power, usefulness,
generality, or even free, open-source, etc, is one (if not the principal)
key to the justification for Sage. VIABILITY apparently is the reason that
(say) Maxima and Axiom and Xcas are not acceptable alternatives to
Mathematica or Maple, but Sage is. But if building Sage requires building
Maxima, then uh isn't Maxima viable too? Well, only if you compile Maxima in
a less effective (slower) system.

 
Now there are many people who have compared
Maxima/Axiom/XCAS/Maple/Mathematica/Matlab and found one or the other to be
lacking in various respects.  This ranges from "uses different syntax" to
"doesn't know enough about ODEs" or "factors integers too slowly" or
"doesn't know enough statistics" or "plots don't rotate in real time"  etc.

But the Sage philosophy seems to say "oh, these are all equivalent." But
none of them is acceptable because they are not VIABLE. 

So Sage staff (volunteer or paid) must work on them to make one of them
viable, e.g. strain to make one compilable on every computer.

* Instead of finding a remedy to some bug in Maxima or Axiom, or add
features that provide value beyond that available in Maple or Mathematica,
or Magma or Matlab, staff will be devoted to fulfilling an essentially
political statement about free speech. 

Aside: This generalization is somewhat unfair regarding Sage in some domains
because of the interests of the main investigator, since he and/or his
collaborators are actually interested in some scientific questions: finding
or designing alternatives (e.g. for number theory) that are fast. That's OK,
and probably constitutes a research agenda of a more or less traditional
form. William Stein says--
"Most importantly, Sage-3.0 finally has code for computing with modular
abelian varieties. You almost certainly have no clue what those are, but
suffice to say that I started the Sage project to compute with them, so
having this code in Sage is a major milestone for me and the project."
 Anyway this fast algebra stuff is (probably) not based on some wobbly
political consideration. 

 Am I reading the mission statement wrong? It might be that Sage is targeted
particularly to those people who require 2 or more of Mathematica, Matlab,
Maple, Magma, and that therefore no SINGLE existing solution except for
texmacs that comes immediately to mind. I don't think so.

But let us look at some new stuff.  One of the Sage employees is funded by
Google/NSF to do "symbolic Calculus".
Now I do not know the person (Gary Furnish) nor the problems being addressed
specifically, but I found in http://sagemath.blogspot.com/ that the goal for
this project is 
"Implement new optimized symbolic manipulation code in Cython. This will
greatly speed up symbolic computation in Sage, and reduce Sage's dependence
on Maxima." 
also
"Symbolic calculus -- a native optimized and much more general
implementation of symbolic Calculus in Sage. Gary Furnish is leading the
charge."

I first thought that this had to do with integral calculus, but maybe not.
Maybe just pushing around algebraic tree structures,  "calculus" being used
more generically. Optimized compared to what? Implementing optimized trees
in python in a different way? Optimized compared to (compiled) Lisp, or the
interpreted Lisp that Sage insists on using? Is this research or just
fiddling?

Another employee is funded to work on plotting.  All I can say is,  Again?


* Now tom boothby at u.washington.edu thinks Sage is here to stay (only time
will tell), and that I am trying to turn the Maxima community against Sage.


No, I am concerned that people will be spending their time and energy, not
at the edges of what is known, but duplicating, re-programming, and
debugging the well-known central constructive parts of computer algebra,
graphical user interfaces, plotting, etc.  While there may occasionally be
technical advantages to taking a fresh look at these pieces, the driving
forces in Sage do not seem to be primarily technical or scientific, but
philosophical and political.

Some time ago I tried KDE or some such system that booted and ran entirely
from a CD. That allowed me to run some scientific software without having to
mess up my disk (filled with Windows), but I think that for Sage, it fails
to be viable.

* Now it could be that "the world" does not need more technical advances in
CAS, and that what it really needs is whizzy plotting and a charismatic
eccentric spokesman. ooh, Stephen Wolfram did that, and made it into a
business. Or it could be that what it needs is,um, some <describe Sage here,
python OO GUI internet software engineering> thingee. Maybe.

....


*  If people want to develop competing unix systems, or lisp systems or
whatever, they are free to choose to do so, but don't look to me for
unabashed enthusiasm over every competing development.  And that doesn't
mean that there aren't better systems.  See for example the Plan 9 operating
system http://en.wikipedia.org/wiki/Plan_9_from_Bell_Labs  better than unix?

Conclusion:

I think that people with the skill set for advancing computer algebra
systems and scientific computing generally are unusual, and that (after an
educational process that may involve courses, reading, programming), such
people should be encouraged to advance the state of the art, not duplicate
it.

Tom credits Sage with standing on the shoulders of giants, not "eating"
projects.  Maybe, but I am concerned that redoing stuff in python is more
like "standing on the toes of giants".