On Wed, Oct 27, 2010 at 4:29 PM, Ondrej Certik <ond...@certik.cz> wrote:
> On Tue, Oct 26, 2010 at 6:44 PM, 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.
>
>
> Are you also considering to move away from the spkg based buildsystem,
> or do you think it will stay?

I am merely suggesting a technical experiment.  I'm unsure what the
implications are, and I don't think there is any easy way to know
until one just does it.

William

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



-- 
William Stein
Professor of Mathematics
University of Washington
http://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