I am not sure that nuanced replies are needed for these
different cases. I suggest, and this is a personal list,
except for the last point:
* Public examples of programs you respect form your exemplars.
Don't overlook -examplehelpfile.hlp- on your system.
* Ask yourself how you would feel if it was "your" idea that
was used by someone else; that is usually a good guide to what
* If in any doubt whatsoever always ask the other people
privately by email. In many marginal cases someone
else would be very happy with an acknowledgement if you ask
them, but possibly a little irritated to see their idea used
without consultation. In other cases what you are seeing may
be some standard Stata trick, even if new to you, and the
person would not dream of claiming it as "their" idea.
* Dependence on other people's ados is hard to discuss.
I know that, in reverse, people have built on programs
I wrote that I didn't feel I wanted to (promise to) maintain,
certainly not as is. In that case, wiring in the
other person's program as a subroutine, with permission,
can be practical.
* Collaborate! Another person with an interest
in the same problem can make suggestions, spot bugs or
errors in the help file, etc. Two people working
on one program, one leading, the other commenting,
can be a very good recipe, especially for a learner.
* Authorship is a matter of blame as well as praise.
If somebody publishes alone, we know who to blame
if the code is lousy. You may well find people
reluctant to accept co-authorship if they don't have
the time to see that the joint work is up to their
standards. (Or the inclination to help write the
* A Stata Corp ado is often published in the _hope_
that you will treat it as a template whenever
appropriate. Stata Corp would be very sensitive about
copyright if you brought out a rival product,
say Renzo's Stata, or Rata, and stole lots
of Stata code, but that is naturally not
at all what you are doing. Whatever borrowing
promotes the use of Stata is good for Stata.
It's often good practice if you mention
where chunks come from; that helps other
programmers. The key question is: is what
you are doing going to reduce Stata Corp's
income or reputation or viability?
* I think most users are motivated more by a
mix of traditional academic values and open source
philosophy, i.e. part of the reward comes from
your ideas being used by others so long as you
* I _guess_ that copyright is
only a practical issue if code is published
formally somewhere. As far as the Stata Journal
is concerned, we have to be sensitive whenever
it seems that the part of the credit for a
publication in a refereed journal should be
attributed to other people. On other hand,
people in some cultures will sue for all sorts
> I am writing now the first ado file that I think is going
> to be fit for
> circulation, so I if anybody has guidance about basic things such as
> acknowledgements, copyright, and coauthoriship I would be
> glad to hear from them.
> I could ask about the specific of my case, but perhaps it
> is more useful for
> me and everybody else on the list to talk about the point
> in general. (In
> the cases that follow I write "I" just because it is clearer than
> programmer1, programmer2, not because I did all that)
> Case1: I saw some code on StataList. That code gave me the
> idea. I made an
> ado out of it which is much more than what I saw, but the
> code I saw still
> constitute the conceptual backbone of my code.
> Proposed Solutions: I think that acknowledgements are a must, but is
> anything more necessary? Asking permission? Offering coauthorship?
> Case2: Most of code is all mine, idea and all, but a piece
> is copy pasted in
> from someone else's code.
> Proposed Solutions: acknowledgments and permission?
> Case3: Most of code is all mine, idea and all, but a piece
> is copy pasted in
> from another StataCorp ado. What does the copyright
> agreement say? (Please
> don't make me read it, I am far too lazy for that, moreover
> I am not sure it
> is available anywhere (after you click "I accept" upon
> installation, where
> does it go? It is not anywhere in the Stata8 folder that I
> can see, it is
> not on the Stata Website that I can find)
> Case4: how to propose to somebody that I would like to
> coauthor a program
> with him/her? Via email it is kind of difficult to broach the issue
> Case5: for a newbie in writing ado files like me, who/how
> to approach
> somebody to ask him/her whether in his/her opinion the ado
> is fit for
> circulation of it would create a lot of problems for users?
> Case6: my code requires somebody else's ado to work
> properly. How to plan
> ahead? What if this other person changes his/her ado? May I
> package his/her
> ado with mine as a subroutine?
> Proposed solution: ask for permission, acknowledgements
* For searches and help try: