Just to clarify, are we talking about different namespaces

from sagecore.rings import Integers
from sagemain.modular.all import euler_phi
from sagecombinat.combinat import choose_nk

This seems a bit unwieldy. On the other hand, if Sage pulls everything
into sage.* then how do I know which library I'm using. On a related
note, can the sagecore documentation link to the main sage library
documentation?

Volker


On Oct 27, 2:44 am, William Stein <wst...@gmail.com> wrote:
> Hi,
>
> When I started Sage I viewed it as a distribution of a bunch of math
> software, and Python as just the interpreter language I happen to use
> at the time.  I didn't even know if using Python as the language would
> last.   However, it's also possible to think of Sage as a Python
> library.
>
> Anyway, it has occurred to me (a few times, and again recently) that
> it would be possible to make much of the Sage distribution, without
> Python of course, into a Python library.  What I mean is the
> following.  You would have a big Python library called "sagemath",
> say, and inside of that would be a huge HG repository.  In that
> repository, one would check in the source code for many of the
> standard Sage spkg's... e.g., GAP, Pari, etc.   When you type
>
>            python setup.py install
>
> then GAP, Pari, etc., would all get built, controlled by some Python
> scripts, then installed as package_data in the sagemath directory of
> <your python>/site-packages/.
>
> From a technical perspective, I don't see any reason why this couldn't
> be made to work.   HG can handle this much data, and "python setup.py
> install" can do anything.      It does lead to a very different way of
> looking at Sage though, and it could help untangle things in
> interesting ways.
>
>   (1) Have a Python library called "sagecore", which is just the most
> important standard spkg's (e.g., Singular, PARI, etc.), perhaps
> eventually built *only* as shared object libraries (no standalone
> interpreters).
>
>   (2) Have a Python library which is the current Sage library (we
> already have this), and which can be installed assuming sagecore is
> installed.
>
>   (3) Have other Python libraries (like 
> psage:http://code.google.com/p/purplesage/source/browse/), which depend on
> (2).   Maybe a lot of the "sage-combinat" code could also be moved to
> such a library, so they can escape the "combinat patch queue" madness.
>  Maybe many other research groups in algebraic topology, differential
> geometry, special functions, etc., will start developing such
> libraries... on their own, and share them with the community (but
> without having to deal directly with the sage project until they want
> to).
>
> To emphasize (3), when people want to write a lot of mathematics code
> in some area, e.g., differential geometry, they would just make a new
> library that depends on Sage (the library in (2)).   We do the work
> needed to make it easy for people to write code outside of the Sage
> library, which depends on Sage.  Especially writing Cython code like
> this can be difficult and confusing, and we don't explain it all in
> any Sage documentation.  It actually took me quite a while to figure
> out how to do it today (with psage).
>
> The core Sage library (2) above would continue to have a higher and
> higher level of code review, tough referee process etc.  However, the
> development models for (3) would be up to the authors of those
> libraries.
>
> The above is already how the ecosystem with Python
> (http://pypi.python.org/pypi), Perl (http://www.cpan.org/), R, etc.,
> work.  Fortunately, Python has reasonably good support already for
> this.
>
> I think without a shift in this direction, Sage is going to be very
> frustrating for people writing research oriented code.
>
> Fortunately, it's possible to do everything I'm describing above
> without  disturbing the mainline Sage project itself, at least for
> now.
>
>  -- William
>
> --
> William Stein
> Professor of Mathematics
> University of Washingtonhttp://wstein.org

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to