Hellooooooooooooooo !!

> I share your frustrations. I think we all do, to some extent. It would be
> very nice if all of these problems, major an minor, could be fixed but the
> reality is that until some one cares enough about a particular problem
then,
> as you say, it isn't going to happen. I think this is called open-source.

I don't know. People usually pay attention to the code they wrote even much
later. I still write to Robert Miller when I have questions on the graph
backends, and I like to have his advice on Sage things from time to time.
He always answers. But because it seems the combinat/ folder is full of
stuff Mike Hansen wrote quickly, nobody feels responsible of them. That's
also something which is quickly fixed if the classes were to be rewritten.
Somebody would know them totally, and perhaps feel that they owe the
community to make it a good work. I really, really hate to see on the
sage-devel mailing list "is that a bug in a graph function ?", but
unfortunately it happens quite often. I try to answer those things as
quickly as possible with a patch. Besides, by doing that you begin to learn
what users do with Sage, and you can think of those bugs you fixed when you
write some new code.

> The absent or poor documentation is what I like least about sage.

Welcome to the graph world :

http://www.sagemath.org/doc/reference/sage/graphs/base/static_sparse_graph.html
http://www.sagemath.org/doc/reference/sage/graphs/pq_trees.html
http://www.sagemath.org/doc/reference/sage/graphs/graph_decompositions/graph_products.html
http://www.sagemath.org/doc/reference/sage/graphs/convexity_properties.html
http://www.sagemath.org/doc/reference/sage/graphs/distances_all_pairs.html
http://www.sagemath.org/doc/reference/sage/graphs/comparability.html
http://www.sagemath.org/doc/reference/sage/graphs/graph_decompositions/vertex_separation.html

Just to say that Sage contains tools that can let you write a lot of
documentation if you need to.

One other point I really do not like about the combinat model is that,
unfortunately, you all know each other. You talk with each other, you can
explain stuff to each other. And so the reviewer reviews a piece of code
that he already knows how to use.
Another thing I do not like much is that I find the code far, far, far too
much algebraic. I have 2 examples of graph libraries I could not stand to
use because of this exactly.

Boost :
http://www.boost.org/doc/libs/1_52_0/libs/graph/doc/table_of_contents.html
here's their code for breadth first search :
http://www.boost.org/doc/libs/1_52_0/boost/graph/breadth_first_search.hpp

Mascopt (developped in my former lab) :
http://www-sop.inria.fr/mascotte/mascopt/
(I spent 1 day full-time reading the manuals, and I had no idea how to
build a graph)

Well. You have the right to like abstracton and generalizations. I prefer
to duplicate code to make things independent, and easy to understand. But I
do not have much code to duplicate, perhaps you do. But I find your code
much too algebraic by far.
Funnily, several days ago Nicolas Florent and I were talking about Sage.
They wondered whether Python was a good choice of language, and whether it
would remain an important language in the future.

- "It would really be an issue to have to port all of our code to another
language, so much is based on Python..."
- "Do you really use Python at all ? I mean, you wrote categories and it
more or less replaces class inheritance in Python, doesn't it ?"

Finally, I admit that I like to play dumb, and that for a large part I do
not have to play much. But the use of categories have been explained to me
one thousand times, that each time there's something I do not like and have
to accept, and that after all that time I still hate the idea of having to
deal with it.

> It's
> annoying that quite a lot of "basic" things need to be implemented and
that
> others have been done badly. I have fixed the things that I really need,
or
> worked around them. The responsiveness of sage-devel and sage-combinat is
> nice.
>
> I switched to sage because it is the best platform that I found. Sure,
many
> things could be better, but I don't like gap4, magma, malple, mathematica,
> matlab, C, ... In spite of its many warts and problems I do like writing
in
> python and working with sage. Using sage, I have been able to compute
things
> much more quickly and painless than before when I was writing in gap. I'm
> happy with that.
>
> Does anyone have any concrete suggestions for how we could improve the
> "development model"? There is definitely room for improvement but short of
> paying someone I don't have any good suggestions. The problem is that
what I
> want implemented is often different to what everyone else wants, but
> thankfully there is some overlap and so some give and take. Ideas anyone?

The development model of Sage-combinat ? Well, I do not know much about
it... A few (very) practical thoughts :

1) A bugfix patch for something that is in Sage should NEVER be included in
Sage-combinat. It should be sent to Sage, and sage-combinat will inherit it
later, when Sage is updated. This way bugfix patches will be merged before
the author's death
2) Something I discussed with Florent : everybody in Sage-combinat should
have at most 2 or 3 patches in the queue. Nothing more. If you want to add
another one, get your patches merged into Sage
3) Why the hell do you need to have your own fork anyway ? (just my own
thought, but I still don't exactly get it)
4) Just look at the TRAC section named combinat. Each time I go look at the
patches, I just dream to put them all on "need_work" state.

http://trac.sagemath.org/sage_trac/query?status=needs_review&component=combinatorics&col=id&col=summary&col=component&col=status&col=type&col=priority&col=milestone&order=priority&row=description
I do not even joke. Look at WHEN the tickets were created. In the order I
get with the previous link :
Reported 3 years ago.
Reported 3 years ago.
Reported 3 years ago.
Reported 2 years ago.
Reported 2 years ago.
Reported 2 years ago.
Reported 23 months ago.
Reported 20 months ago.
Reported 16 months ago.
Reported 11 months ago.
Reported 9 months ago.
Reported 9 months ago.
Reported 9 months ago.
Reported 8 months ago.
Reported 7 months ago.
Reported 6 months ago.
Reported 5 months ago.
Reported 5 months ago.
Reported 4 months ago.
Reported 4 months ago.
Reported 3 months ago.
Reported 3 months ago.
Reported 2 months ago.
Reported 26 hours ago.
Reported 18 months ago.
Reported 13 months ago.
Reported 6 months ago.

Honestly.... Many of these tickets are not really waiting for a review.
Many are waiting for the resurrection of developpers, or for their children
to learn Python. Some of them have tickets that are not updated with their
Sage-combinat counterpart.

So my 4) advice is : please, clean this list of dead tickets. Exchange
reviews of a ticket against review of others ? We are talking of years...
Years...

I just try to convince you that your working model has made you FORK from
Sage. You have your own, running version of it, with your own patches. You
all know how it works so you do not really need to write the documentation.
You behave as if you didn't need to contribute to Sage, and you actually
don't. Florent is working on a patch to distribute computations right now,
and it is a very nice thing ! But for as long as he can use it without
including it in Sage, he will not have to write the documentation, clean
it, and send it to be reviewed.
..... Because it is already available on Sage-combinat.

5) Accept the idea that your customers may become users, have no more
rights than other Sage users and developpers, update the version of Sage
they use, and stop spending a lifetime managing a queue.

Nathann

-- 
You received this message because you are subscribed to the Google Groups 
"sage-combinat-devel" group.
To post to this group, send email to sage-combinat-devel@googlegroups.com.
To unsubscribe from this group, send email to 
sage-combinat-devel+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/sage-combinat-devel?hl=en.

Reply via email to