On Tue, Dec 1, 2009 at 5:59 AM, Fernando Perez <fperez....@gmail.com> wrote:
> On Mon, Nov 30, 2009 at 9:01 PM, Robert Bradshaw
> <rober...@math.washington.edu> wrote:
>> I think the basic idea was that one could write a faster (sparse and
>> dense) graph "core," and then run all the NetworkX algorithms on top
>> of it as long as it supported the interface (for manipulating and
>> querying vertices and edges). If some code was still too slow then it
>> would be moved down to C (hopefully it would be sufficient to declare
>> the graphs as c-graphs and compile with Cython to remove all the
>> Python function call overhead). I don't know how well this works at
>> the moment.
>>
>
> Is there any particular reason why this code couldn't be contributed
> upstream to Networkx?  I use networkx outside of Sage, and it would be
> great to have speed improvements made there as well; since Sage
> already ships nx it would obviously benefit regardless.
>
> There may be a good reason for not doing so, I'm just curious.  From
> my perspective, the more Sage work also benefits upstream projects,
> the more impact it has and more people benefit from it, both those who
> use Sage directly and those who may use those projects outside of
> Sage.  Obviously in some cases this isn't viable (dependencies on core
> Sage code are an obvious one), hence my question.

One potential problem is that all the Sage graph theory code is GPL'd,
but Networkx is now BSD licensed (it used to be LGPL'd).    Given that
graph theory in Sage is an area with a lot of possibly unfriendly
competition with Magma and Mathematica, the GPL license is appropriate
for us for that part of Sage.

I also recall that the way Networkx switched from LGPL to BSD was odd.
 They sent an email to their list and said something like: "we're
switching from the LGPL to the BSD license; if you have a problem with
that please respond within 5 days, otherwise we're making the switch".
 That wasn't the exact wording, but it was something like that.  I
would personally be uncomfortable contributing code to a project that
switches licenses like that.

A second potential problem is that all the code we're talking about is
written in Cython, whereas Networkx is a pure Python library (I
think?).

The biggest problem we have wrt Networkx right now is that Sage still
ships a very old version, because Networkx's API changed a huge amount
and it was so far too difficult to change Sage to work with the new
API.   I wish somebody would do so...

 -- William

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