On Dec 7, 2007 3:08 AM, Ondrej Certik <[EMAIL PROTECTED]> wrote: > currrently *.py files in SAGE usually contain names who wrote them. > The famous Karl Fogel's Producing Open Source Software discourages > that: > > http://producingoss.com/en/managing-volunteers.html#territoriality > > mainly: > > People sometimes argue in favor of author or maintainer tags in source > files on the grounds that this gives visible credit to those who have > done the most work there. There are two problems with this argument. > First, the tags inevitably raise the awkward question of how much work > one must do to get one's own name listed there too. Second, they > conflate the issue of credit with that of authority: having done work > in the past does not imply ownership of the area where the work was > done, but it's difficult if not impossible to avoid such an > implication when individual names are listed at the tops of source > files. In any case, credit information can already be obtained from > the version control logs and other out-of-band mechanisms like mailing > list archives, so no information is lost by banning it from the source > files themselves.
I agree with maybe 60% of producingoss.com and disagree with maybe 40% of that book, at least for Sage. The above is an example of some of the many things in that book that I disagree with (at least for Sage). > People sometimes argue in favor of author or maintainer tags in source > files on the grounds that this gives visible credit to those who have > done the most work there. I definitely argue that. > There are two problems with this argument. > First, the tags inevitably raise the awkward question of how much work > one must do to get one's own name listed there too. Just because something raises a question doesn't mean that something is a mistake to do! The answer in the case of Sage is that if a person feels they've done enough to explicitly list themselves in an AUTHOR block, e.g., for a function, for a file, whatever, then they've done enough. Full stop. By the way, a great example of a file that makes good use of the AUTHOR blocks is: http://www.sagemath.org/hg/sage-main/file/7110a20969c8/sage/rings/bernoulli_mod_p.pyx Finally, I have say that in mathematics research at least author credit is *everything*. It is by far the most important commodity there is. To argue for banning explicitly listing credits in places in code is frankly a very stupid waste of valuable gold. I've seen *precisely* this sort of thing be enforced with Magma in some cases, and it seriously aliented certain people, present company included. If somebody feels strongly enough to put AUTHOR: name (date) -- summary of what they did in a function docstring, then they deserve that right. > Second, they > conflate the issue of credit with that of authority: having done work > in the past does not imply ownership of the area where the work was > done, but it's difficult if not impossible to avoid such an > implication when individual names are listed at the tops of source > files. What's wrong with some implied ownership!? That's actually very very important. For example, to take a concrete situation, Robert Miller and Emily Kirkman spent a huge amount of time during the last year writing graph theory code. Their names are clearly listed in AUTHOR blocks at the tops of files. I've done some minor reorganization of docstrings and code, but definitely don't feel I should be listed -- it's their part of Sage. Now suppose some talented enthusiastic person, e.g., named Jason Grout, comes along and starts submitting patches all over the place for graph theory. It's clear what should happen -- Robert and Emily should get notified, get first dibs to referee, etc., until after a while Jason starts getting so confident he lists his name under AUTHOR, and he should be consulted too. Morever, "implied ownership" really isnt' an issue with Sage, beyond the basic respect it should entail, since the whole culture of the project is that anybody can work on any part of the system, as long as they _respectfully_ post patches, get them refereed etc. > In any case, credit information can already be obtained from > the version control logs and other out-of-band mechanisms like mailing > list archives, so no information is lost by banning it from the source > files themselves. There is a significant barrier to entry in getting credit information from version control logs, and they can be very misleading (e.g., in the case of moving chunks of code around). Again I strongly disagree with removing all the AUTHOR: blocks from the Sage docstrings. I think doing this would (1) stupidly ignore a huge amount of what makes Sage work, (2) removes a valuable mechanism for getting a quick sense of who the main people are who consider themselves serious contributors to a file or function, (3) raises the barrier to *giving* people credit for their work. (4) completely goes contrary to the tradition in mathematics, where credit is everything -- which is why most mathematical objects are named after people (e.g., Bernoulli numbers, Tate curves, etc.). When some random mathematician, say, types sage: bernoulli_mod_p? I get ... AUTHOR: -- David Harvey (2006-08-06) This tells me something very useful immediately - that there's a real specific person behind this code, maybe somebody I'll see at a conference soon and thank for their function, ask further questions about it, etc. etc. If as a random mathematician I had to rely on clicking around with Mercurial to get info like that it would never happen, and I probably wouldn't trust what I see anyways. -- William --~--~---------~--~----~------------~-------~--~----~ To post to this group, send email to sage-devel@googlegroups.com To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/sage-devel URLs: http://sage.scipy.org/sage/ and http://modular.math.washington.edu/sage/ -~----------~----~----~----~------~----~------~--~---