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

Reply via email to