3 ms·
Let's use a specific(ish) example. Suppose I've developed an API that has a few function calls: void foo(int) int bar(char **) char *baz(float) I have then
by BaseballPhysics 5y ago
Let's use a specific(ish) example.
Suppose I've developed an API that has a few function calls:
void foo(int)
int bar(char **)
char *baz(float)
I have then written a bunch of code that defines my specific implementation of 'foo', 'bar', and 'baz'.
That specific implementation--my specific code--is subject to copyright and no one is allowed to copy my code and use it without my express permission. And that includes obvious things like copying the code and obfuscating what you did via renaming of variables and so forth.
But suppose you want to implement your own compatible version of that API so that someone else can use your library instead of mine.
To create your version you decompile the code and you see that the API is composed of those three functions 'foo', 'bar', and baz'. You then read the decompiled versions of those functions and you see what they're logically doing.
You absolutely can then go away and write your own version of this API! As long as you don't literally take copies of my code and just go write 'foo', 'bar', and 'baz' in a way that semantically does the same thing, then you're safe!
However, suppose 'bar' is a simple in-place sort, and you and I both implement a standard quicksort to do the job.
Sure, you wrote yours totally independently of me, but I could still go to a judge and claim that, no, you copied my version! Your copy of 'bar' is in fact a copyright violation because you just stole my code!
How would you prove otherwise?
So instead, what we do is get a third party. Their job is to read the decompiled versions of 'foo', 'bar', and 'baz', and then write down a totally independent specification that describes how those functions work, but doesn't contain any of the code.
To be extra safe, we even get a lawyer to read the resulting specification and certify that, indeed, no copyrighted code is present.
Then we hand you the specification, and you use that specification to implement 'foo', 'bar', and 'baz'.
Now, the specification might say 'bar is an in-place sorting function', and so you go ahead and implement your own version of quicksort.
But now, when I claim you copied my code, you can go to the judge and say "Au contraire! I worked strictly from this specification, here, that my lawyer has verified contains no copyrighted code. The only person that actually read the code is that guy over there points dramatically to the audience and he didn't write any of the code."
This provides a much much stronger defense that your implementation cannot possibly contain illegally duplicated, copyrighted code, and that any similarities are entirely incidental.
Yes, this whole thing probably seems like a crazy dog and pony show, but when you're a little upstart company like Compaq going up against the behemoth that is IBM, you can be damn sure you're gonna dot all your i's and cross all your t's, because they will send an army of lawyers your way, and it won't be pleasant.