On Sun, Apr 20, 2008 at 6:57 AM, David Joyner <[EMAIL PROTECTED]> wrote:
>
>  Hi Martin, Bill:
>
>  Thanks for these very interesting emails! Some of my reactions are below.
>
>  - David Joyner
>
>  On Sun, Apr 20, 2008 at 9:35 AM, Bill Page <[EMAIL PROTECTED]> wrote:
>  >
>  >  Martin,
>  >
>  >  I think discussing things like off the email lists does more damage to
>  >  the community then it would if you were to be more public about these
>  >  opinions. Are far as I am concerned, you have nothing to fear from
>  >  exploring these ideas and other people might benefit greatly by your
>  >  experience.

Yep.  This is one of the basic axioms of how to run a successful
open source project, according to http://producingoss.com/,
much of which I agree with.

>  >  Sage is not going away (It should not go away!) and I think the Axiom
>  >  community needs to deal with how it should interact with Sage in the
>  >  future.
>  >
>  >  Regards,
>  >  Bill Page.

I hope Sage doesn't go away :-), since I really like open source
math software.   Certainly improving Sage/Axiom community
interaction would be good.

>  >
>  >  On Sun, Apr 20, 2008 at 3:10 AM, Martin Rubey <[EMAIL PROTECTED]> wrote:
>  >  > I don't have the guts to send this to a public mailing list.  I probably
>  >  >  should.  If you want to, you have my permission.
>  >  >
>  >  >
>  >  >  "Alfredo Portes" <[EMAIL PROTECTED]> writes:
>  >  >
>  >  >  > >  Axiom is so huge, so if Sage would be a part of Axiom that just 
> handles
>  >  >  > > the web interface, why not?

The part of Sage that deals with the web interface is written
in pure Python and depends only on Python, Twisted, and
Pexpect.   At present it is somewhat tightly integrated into
the Sage distribution.  But this is only *temporary*, which
we intend to change in the future, most likely this summer.
Thus if you just want to have an Axiom GUI and or web notebook
interface, you could just ship or depend on

     Python+Twisted+Pexpect+a small part of Sage.

There is also Knoboo by some other Sage developers,
which isn't as stable and full featured (yet!), but looks
very nice: http://knoboo.com/


>  >  >  >
>  >  >  > If you think Axiom is huge, then you need to look at Sage. It is 
> ~10x Axiom.

The entire Sage distribution is about 5 million lines of code.  Much of
this is things like scipy (around 450 thousand lines), Python itself,
etc.,   The core Sage library -- which we wrote in Python/Cython --
is now around 200 thousand lines.

I don't understand the Axiom distribution enough to understand
how big it is, but my impression is that it is *also* huge.  Looking
in the src/src/algebra directory there are many hundreds of
thousands of lines of code (over 300,000 distinct lines just of
dot-lsp files).  By the way, how do you guys read
some of this stuff?  I looked in INTALG.lsp and it is
pages of code that look like this:
                                             (PROGN
                                               (LETT #0# NIL
                                                |INTALG;palglogint|)
                                               (SEQ
                                                (LETT |q| NIL
                                                 |INTALG;palglogint|)
                                                (LETT #1#
                                                 (SPADCALL (QCDR |fc|)
                                                  |lf| (QREFELT $ 79))
                                                 |INTALG;palglogint|)
                                                G190
                                                (COND
                                                  ((OR (ATOM #1#)
                                                    (PROGN
                                                      (LETT |q|
                                                       (CAR #1#)
                                                       |INTALG;palglogint|)
                                                      NIL))
                                                   (GO G191)))
                                                (SEQ
                                                 (EXIT
                                                  (LETT #0#
                                                   (CONS
                                                    (SPADCALL
                                                     (SPADCALL
                                                      (QCAR |q|) 0
                                                      (QREFELT $ 82))
                                                     (QREFELT $ 83))
                                                    #0#)
                                                   |INTALG;palglogint|)))

This is from INTALG.lsp.  Surely this is some machine-generated
code that isn't meant to be human readable, so I'm
measuring the wrong thing!

Some of the code is funny (from zmod.lsp):

(DEFUN |ZMOD;coerce;I$;24| (|n| $) (|ZMOD;bloodyCompiler| |n| $))

Ahh, maybe the pamphlet files are what generate the lsp files.

It looks like the pamphlet files that come with fricas are between
100,000 and 200,000 lines long.

How does the fricas/axiom source code layout work?
Is it all written in pamphlets that lisp is generated from?
Anyway, I would love if somebody who knows what they
are talking about regarding axiom (not me!) would
explain what the human-written/readable code
parts of the axiom distro are and roughly how big each is,
in some sense.  Or just point me to an article or wiki page
about this.  And who are some of the Axiom original
authors?  Some files have headers like:

++ Author: Grabmeier, Gschnitzer, Williamson
++ Date Created: 1987
++ Date Last Updated: July 1990

I wonder who those guys were...?

>  >  >  > And in the other hand Axiom making a standard package will not 
> happen. There
>  >  >  > are discussions on their list to remove lisp and maxima.
>
>
>  IMHO, I don't think removing lisp or maxima will happen anytime soon. Lots of
>  topics are open for discussion on the sage-devel list, and William
>  Stein of course
>  makes the final decision, but I've not heard any specific plans for
>  that.

There are rumblings but *definitely* no specific plans to remove
lisp or maxima.  More likely is that we will reduce our dependence
on Maxima slowly for the core area of symbolic simplification.
That said, the main build manager -- Michael Abshoff -- has as
a critically important goal to get Sage to build on a huge range
of architecture, and surprisingly getting a lisp interpreter (namely
clisp) to work on such a large range of machines is really really
really painful.  He might comment on this....   Anyway, Michael's
summary of the situation is:

"I know of three open source implementations of lisp
that do not need to bootstrap themselves"
a) gcl: no Solaris support, depends on libbfd, no stable release in
nearly five years. I broke this trivially on RedHat Enterprise 5 - a
platform which should be well supported. The issue was easy to fix,
but that is a different story.
b) clisp: broken with gcc 4.2.x and gcc 4.3.0 for at least six months.
In effect a single developer. compiles on Solaris with gcc 4.2.2, but
segfaults in make check, segfaults building Maxima
c) ecls: the ray of hope? Bug Maxima can't be build on top of it due
to same issues with save and load image. FriCAS has been ported to it.
Slower than clisp at the moment, but things are improving. Like clisp
in effect a single developer is working on this."

This is an area where I think the Sage project could really use help
from some of the Fricas people; namely it would be great if we could
get Maxima to build on ECLS, since then we could get rid of clisp
completely.   Since Axiom has been ported to ECLS, maybe
Waldek or whoever could help a little with getting Maxima to
run on ECLS.

That might sound weird, since why would an Axiom guy want to
help with working on or improving Maxima?    But that's the
** Sage WAY ** which is to get all open source software packages
to work better.  I think any and all competition/fighting between
open source math software is completely counterproductive.
The goal we should all have is to provide a viable free open
source alternative to Maple, Mathematica, Matlab, and Magma.
Especially the first three systems are the ones we should view
as the competition -- everything else that's free is on our team.

> On the other hand,
>  I think a lot of people would be very happy if SymPy could, as if by
>  magic, implement
>  all the functionality of Maxima and Axiom overnight:-)

That's not going to happen, partly by design.  Sympy has (is is
starting to have) a pretty clear goal, and it's not to fully replace
the sort of functionality Axiom (or to a less extent Maxima) has,
as far as I can tell.   The current plan is to rewrite symbolic
manipulation in Cython using lots of tricks so it will be very
fast, flexible, and not depend on Maxima at all.  This is important,
because Maxima (via pexpect) is too slow and,
much more importantly, it is too hard for developers to improve
and change.  This difficulty for developers has stopped dead
promising Sage development projects related to symbolic
calculus computation.   This symbolic manipulation rewrite
is actually well on its way; Gary Furnish has been working on
it day and night for a few months now, and has been funded
by the NSF and Google (thanks!) to work on it full time at UW
all summer.

>
>  >  >
>  >  >  That's bad news, at least for me.  I was hoping a lot that Axiom could 
> be
>  >  >  merged into Sage at some point, in some way.  After all, Axiom does 
> have some
>  >  >  interesting and huge packages, like the integration stuff.  But maybe 
> I'm
>  >  >  mistaken.

You are not mistaken that Axiom does have interesting and huge
packages.

You guys could certainly make a version of Sage that includes Axiom along
with anything extra and built however you want, with maybe some
Axiom-specific enhancements.    Just install Sage, install axiom into
it, and type
   sage -bdist sage-axiom-3.0
and look in your
   dist/
subdirectory for the resulting binary.

I can't explain to you why Axiom definitely hasn't been made a
part of Sage, and that it is unlikely to happen as far as I can tell.
Probably one of the most honest reasons is that I guess few
of the active Sage developers are also Axiom users/developers,
so maybe we're ignorant.  I don't know.  Nowadays, nothing ever gets into
Sage by just "hoping a lot". Usually somebody has to really really
want it, make many many compelling arguments, demonstrate
use cases, offer to work hard to solve problems that come up
with integration of the component into Sage, etc.  Also, we have
pretty strict rules about platforms that have to be fully supported.

>  >  >  It seems that Sage is going to connect with OLPC.

Someday it will I hope.  The size of Sage is a problem though, of course,
and for us the size isn't a problem, since our goal is to compete with
the likes of Mathematica and Matlab, which are both *huge* themselves.

> > > If all those kids do their
>  >  >  math using Sage, I think there is no way around Sage anymore.

More likely sympy (and Python!) will have a big impact on OLPC.
But I still think there is no way around Sage.

And really, the central system in all this discussion which is really
taking the entire world of mathematics by storm is ** PYTHON **.
Sage/Sympy/etc. are all just part of that.

>>> Sage can already
>  >  >  do many many things better than Axiom, I suppose, so we need really 
> good
>  >  >  reasons to continue with Axiom, I think.  Maybe I should just redo the 
> guessing
>  >  >  package in Python and be done with it?  Some time ago I said that I'll 
> quit
>
>
>  I think that would be awesome!!
>

Yes, indeed redo the guessing package in Sage/Python.
It will only help improve the code in both systems.  If you
have the time I would strongly encourage you to do that.

>  >  >  Axiom if there are less than twenty contributors by the end of 2008.  
> However,
>  >  >  it seems to me that the number of algebra contributors actually went 
> down!
>  >  >
>  >  >  I'd really like to hear some comments on the general plan.  Do you 
> think it's
>  >  >  feasible to
>  >  >
>  >  >  a) attract other people, not working on Sage

Yes.  There's tons of people who like to work on mathematics software,
and who have a wide range of tastes.  Make your project as developer
friendly as possible.  Go out of your way, busting your back, to make
it so new contributors are treated well, etc. etc.

>  >  >  b) merge our community into the Sage community

Yes, that would be great too.  I think there should just be one big
community of open source mathematics software developers,
all trying to together do a better job than the closed commercial
Maple/Mathematica/Magma communities.

>  I personally like this idea very much, but don't have any ideas for
>  how this would
>  evolve. Again, it depends on what William Stein thinks about it.

+1

>  Maybe
>  eventually a [EMAIL PROTECTED] list could be formed?
>  If I can help in some small way, please let me know.
>
>
>  >  >
>  >  >  Martin
>  >  >
>  >  >
>  >
>  >  >
>  >
>
>  >
>



-- 
William Stein
Associate Professor of Mathematics
University of Washington
http://wstein.org

--~--~---------~--~----~------------~-------~--~----~
To post to this group, send email to sage-devel@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/sage-devel
URLs: http://www.sagemath.org
-~----------~----~----~----~------~----~------~--~---

Reply via email to