Nathann Cohen wrote:
> Hello !!!
> 
> I was just wondering about the kind of algorithms we want in Sage.  For 
> example, if someone in my lab finds out a brand new algorithm to compute 
> a brand-new invariant for a pretty restrictive ( but brand-new, too ) 
> class of graphs, do we want to have it included in Sage ?


Yes!

It would probably take, say, 300K of code to make Sage the expert in 
what you need it to do?  That's a no-brainer---do it!  In fact, we also 
encourage people to submit books they are writing to be included in 
Sage, so that we have an entire book's worth of code as doctests.

In the next few months, I am going to submit a file of functions to 
calculate the minimum rank of a graph.  Probably less than 100 people in 
the world work on this, but once Sage has it, Sage will be the defacto 
software for working with minimum rank.  That will be very, very nice.


> My answer, for the moment, is no... I was thinking we only wanted to see 
> in Sage things that may be useful to everybody, and let people write 
> their own functions, but...


Suppose someone, "John", submits his special function to Sage.  It takes 
up about 10K worth of space.  Well, now John's code is guaranteed to 
work with future versions of Sage (his doctests *must* pass before a new 
release), at least as long as someone is willing to tweak it to port it 
to new versions.  Also, now John knows how to submit things and knows 
how to review patches.  So next time he needs something done, he's more 
likely to do it himself and submit a patch.

We *need* developers and reviewers.  You know that.  I think 10K of code 
that maybe only he uses for the time being is well worth getting another 
person capable of developing and reviewing patches.

Besides, you said it was a lab?  It sounds like the code is valuable to 
more than just one person.

That said, I would also pay attention to what Minh said, and organize 
things.  That's the only reason the minimum rank code isn't submitted to 
Sage already---I haven't sat down and organized it as much as it should be.




> The thing is that I am tempted ( for the Graph class ) to write many 
> functions I find useful, but these functions would very quickly crowd 
> the list of Graph methods... For example I am interested in computing 
> orientations of graphs, and there may be many functions needed... For 
> example, how could I include 10 or 20 functions dealing with one 
> particular problem of graphs without quickly transforming this already 
> quite crowded class in something impossible to browse ?


That's a question of organization.  Sage is largely developed by people 
"scratching their own itch", making the software the best possible for 
the work they are doing.

Thanks again for all of the work you are doing.  Your flurry of patches 
is part of the reason we are having a Review day next Tuesday!

Jason



-- 
Jason Grout


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