http://www.perlmonks.org?node_id=45540

belize has asked for the wisdom of the Perl Monks concerning the following question:

This is a problem that is starting to bother me (well not really bother, but that I am thinking about). I guess it is one of ethics and I hope it doesn't sound selfish on this wonderful site which gives so freely of expertise:

All us newbies learn Perl similar to HTML, we look at what has been done before us and then modify.

With Perl, we download what others have done, and modify to suit our purposes and to learn. At what point in the process of learning and modifying, does the program become more yours and less the program you started with? At what point can you say, "OK, this is my program." Or are only programs that you code from scratch truely yours?

Is there a standard copyright that is attached to programming that gives credit to those that came before?

Replies are listed 'Best First'.
Re: At what point is the coding more yours?
by jeroenes (Priest) on Dec 07, 2000 at 21:33 UTC
    First of all, you must respect every license or copyright that exists. If there is none (as with many homepages and so on), just assume a full copyright with no license. If it is a tutorial, of course you can use it to write your own code, but always give credit to the original code, and include a reference.

    Bottom line, if you want to call it your own code, write it from scratch. Just begin with an empty file, and only copy things from manuals that came with the program/ compiler / etc, or if you take something out of a tutorial, put in a reference and credit.

    There is no such thing as a standard copyright, but copying something from someone else is plain stealing, so don't do that.

    Disclaimer: I'm not a legal expert, just my $0.001. But I don't think I'm far off.

    Jeroen
    I was dreaming of guitarnotes that would irritate an executive kind of guy (FZ)

Re: At what point is the coding more yours?
by mirod (Canon) on Dec 07, 2000 at 21:44 UTC

    Perl and a lot of Perl code, especially modules, uses the Artistic License: in a nutshell (IANAL) you can do what the heck you want with the code, modifying it, extracting pieces of it for your own usage, charging people for it, anything as long as you don't call modified versions the same as the original and distribute them without the author's consent.

    The standard header for that kind of code is:

    # Copyright (c) 2000 belize # All rights reserved. # # This program is free software; you can redistribute it and/or # modify it under the same terms as Perl itself.

    Of course basic courtesy would dictate giving due credit to the author.

    As for other code, you really have to read the license.

      One small clarification. By using the form of words that you suggest above (which is what I use in all of my code) you're allowing your code to be licensed under either the Artistic License or the FSF's GPL.

      --
      <http://www.dave.org.uk>

      "Perl makes the fun jobs fun
      and the boring jobs bearable" - me

Re: At what point is the coding more yours?
by lemming (Priest) on Dec 07, 2000 at 21:46 UTC
    An ex-manager of mine quoted some copyright law that applied to SW. "If there is less than 75% common with the old code, then you don't have to credit, etc..." I think he was wrong and I am so glad I don't work there anymore.

    My feeling are thus:

    If you benefited from the code you copied, give credit. If it's a simple algorithm that repeats what has been known before, you really don't have to.

    I saw one Perl "coder" put a copyright notice of his own on a program that looked to be copied from the Camel book. I don't know why I didn't make an effort to slap him around.

    The bottom line is a lot of coding is building on what came before so that the whole copyright issue is fuzzy, but it's better to be overly ethical than not.

Re: At what point is the coding more yours?
by iamnothing (Friar) on Dec 08, 2000 at 01:11 UTC
    Well, many of the legal questions have been answered well and similarly to my views on it: give credit where credit is due, and read the license.

    On to when a program becomes yours. When you are first learning any language, a lot of the learning process is based on assimilation. But as you learn, you take what you have assimilated and begin using it logically on things that you create yourself. You can give a base level programmer a simple algorithm (say a bubble sort) and knowing the in's and out's of loops and variables, they can create a rather ugly program that performs the sort. It's not optimized, and it's probably not the best way to approach a bubble sort, but it's theirs because they created it from scratch. But they had to use knowledge and specs created or evolved by others.

    I don't think learning is a wizz-bang process. It's more of an evolutionary process, whereas we gather information from a wide variety of sources and use it to the best of our ability, hopefully crediting those sources if we even realize who they are.

    Now, cutting and pasting code is a different matter since you usually know where the code originated and from who (at least most modern code). These people should always be credited, and contacted if your project was significantly helped by them.

Re: At what point is the coding more yours?
by clemburg (Curate) on Dec 07, 2000 at 22:53 UTC

    I think a main point here is what you do with the code.

    If you copy some code that is "open" (that is, it has no copyright attached that forbids you what you do), and you adapt it and use it, fine, good for you. Give credit to the original author, maybe mail him and thank him.

    If you want to say proudly "Well, that is *my* code!", you will have to do better than just copy and paste. I like to think of this like of writing normal documents: literal citation has to marked as citation, citing ideas has to be marked by giving credit to the original authors.

    "Know your sources" is the motto of those learning. And who would ever want to stop learning ...

    Christian Lemburg
    Brainbench MVP for Perl
    http://www.brainbench.com

Re: At what point is the coding more yours?
by Anonymous Monk on Dec 08, 2000 at 06:55 UTC
    This question sounds familiar with one asked about an old boat. When, during the course of a boat's life, as it is repaired with new parts, does it cease to be the boat it originally was? I thought about it and decided that when its purpose changes the boat would have taken on a new identity.
      I like the axe analogy, along the same lines as the boat: If you break two handles, and put three new heads on it, how can you still call it your trusty old axe?

      =IndyZ

Re: At what point is the coding more yours?
by Anonymous Monk on Dec 08, 2000 at 01:08 UTC
    I rarely use other code. I try to avoid to look up a solution on the web.. my choice..so all code is mine ;-)