All the Perl that's Practical to Extract and Report

Navigation

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
Without JavaScript enabled, you might want to
use the classic discussion system instead. If you login, you can remember this preference.

Please Log In to Continue

It seems to me that if you started with code and performed several iterations privately and came up with something completely different and then published it, it would not be derivative. But if you published each iteration, each would be derivative of the previous and therefore tainted.

I'm not sure my definition agrees with legality, though. I'm certain the only way to be truly legally safe is to operate in a cleanroom, reimplementing from open specs, documentation, and reverse engineering, never looking at the code you don't want to derive from. Of course, some tyrants would like to have this defined as derivative as well. It really does seem to me though that if the first thing you publish is completely distinguishable from the original and noone could ever see any evidence you worked with the original (other than perhaps interoperability) you would probably be safe from legal prosecution, even if what you have might technically be a derivative work. In that case you'd have a derivative, but noone could prove it.

As an example which supports my argument, look at how GNU initially set out to reimplement UNIX: take a UNIX box and rewrite each individual program, piece by piece. You started with UNIX, and if you were taking the OS as a whole you'd have a derivative work at every step, but in the end you had something which was not a derivative work; it was just a reverse engineered reimplementation, with new features added. Of course, maybe they had extra protection since each piece was a separate work unto itself. But if you look at the OS as a whole, they did what I was saying: a complete OS was not published by anyone until you had something which was not a derivative work.

As an example which opposes my argument, think of cheating in a University course; I'm pretty sure that no professor I ever had would have considered taking someone else's program and rewriting it and rewriting it and rewriting it until it was completely different to be anything other than cheating. They always made "did you look at somebody else's source code?" to be the clear delineation between cheating or not. (i.e., we could talk about it all we wanted) But they also maintained that they'd pretty much be able to tell in most circumstances if we'd shared code at some point, even if things were different. I'm betting that at this stage in my career, I could produce a "derivative" work that they'd never be able to prove, or possibly even suspect.

Really, it's a line I don't want the law delineating. I think things like this are best covered by private agreements with the companies involved, rather than one-size-fits-all intellectual "property" law. I think the presence of that law discourages the innovation we'd see otherwise.

--J. David works really hard, has a passion for writing good software, and knows many of the world's best Perl programmers

I have considered all of the same cases or variations on them, actually. I agree with your conclusion, but your thought experiments are not helping.:-) You have restated my questions, but not given any answers…