Friday, August 05, 2011

source code comments and evolution

In judging whether the source code of a computer program has been copied, similarity in the two programs' effects isn't a conclusive exhibit. As long as the programs were both written to accomplish similar purposes or solve similar problems, it's reasonable for the two to behave similarly. The base strategies used by the programs could very well turn out to be not that different at all. When a particular mathematical formula yields the right quantity, other formulas would probably need to be alike in order to also yield the right quantity. (This is why some argue that patents on software, as opposed to copyright of the source code, are questionable and/or unenforceable.)

Although it's not hard to believe that two programs could be created without copying and yet have a resemblance, it stretches credibility to allege that the source code of the two is the same. Human-friendly source code allows for a variety of choices that fall under the amorphous category of "style". Names, extra spacing, units of organization, and so forth distinguish the source code and therefore authorship of two independently-written programs. Still more idiosyncratic are the comments in the source code, which are completely extraneous lines of text that explain the code to readers - including the writer, who will undoubtedly need to return to the code later. It's improbable to see source code with identical details, especially when those details serve no function in the operation of the actual program! One program writer could have used the name "item_count" and the other "number_of_items". One could have included the source code comment, "prevent division by zero", and the other, "avoid a zero denominator". The great freedom that's possible for nonfunctional features of the source code also makes coincidences too unlikely to consider. If these features match, the confident assurance is that the source code is a copy.

DNA is the metaphorical source code of organisms. And like its metaphor, DNA has well-known nonfunctional ("noncoding", perhaps "junk") elements, too. Observations of such elements match across a huge range of organisms. Just as these matches strongly indicate common origins of program source code, the DNA must have common origins. Evolution, in which species spring from other species, is consistent with the observations. Copying is rampant, but at least there aren't any violations of copyright. There can't be; the material is copying itself!

No comments:

Post a Comment