April 04, 2007
On Tue, 03 Apr 2007 18:42:58 -0700, Walter Bright wrote:

> Gregor Richards wrote:
>> Including major copyrighted aspects of an original, previously created work is by definition copying. My very simple definition, while not very nuanced, is accurate :)
> 
> Using the original implementation as a guide to making a clone is making a derivative work. I'm not a lawyer, but I have been grilled and basted by well-paid lawyers doing their due diligence about these things.

Even if one uses it is a guide to how *not* to do things? That is, the clone is created in a form that is deliberately and explicitly not like the original - and this can be done because they know the original.

-- 
Derek
(skype: derek.j.parnell)
Melbourne, Australia
"Justice for David Hicks!"
4/04/2007 11:46:07 AM
April 04, 2007
Derek Parnell wrote:
> I have occasionally wondered about the situation in which one looks at code
> "X" and thinks 'This is horrible. I can do better' and then goes on to
> write "Y", which looks nothing like "X" but was developed with the
> knowledge of "X". Now, if "X" and "Y" can be used interchangeably to solve
> the same problem, is "Y" deemed to have been derived from "X"? 
> 
> In other words, is the motive of the author a factor? In the case above,
> "X" and "Y" are totally dissimilar but "Y" was written /because/ the author
> knew the details of "X". If the author did not know "X" but still wrote
> "Y", could it be a derived work? 

What will happen if things go far enough is an independent expert will be hired by the lawyers who will comb through the code evaluating how similar or dissimilar it is.
April 04, 2007
Reply to Walter,

> Derek Parnell wrote:
> 
>> I have occasionally wondered about the situation in which one looks
>> at code "X" and thinks 'This is horrible. I can do better' and then
>> goes on to write "Y", which looks nothing like "X" but was developed
>> with the knowledge of "X". Now, if "X" and "Y" can be used
>> interchangeably to solve the same problem, is "Y" deemed to have been
>> derived from "X"?
>> 
>> In other words, is the motive of the author a factor? In the case
>> above, "X" and "Y" are totally dissimilar but "Y" was written
>> /because/ the author knew the details of "X". If the author did not
>> know "X" but still wrote "Y", could it be a derived work?
>> 
> What will happen if things go far enough is an independent expert will
> be hired by the lawyers who will comb through the code evaluating how
> similar or dissimilar it is.
> 

And when that happens, the independent expert makes money, the lawyer makes money and everybody else pays them.


April 04, 2007
Walter Bright wrote:
> 
> If you're going to clone a function, you can't use someone else's copyrighted code as a guide. Even just looking at it could cause 'taint', which is why I never look at or work on gcc.

The whole situation is kind of a mess.  Say a programmer creates a parser for one company and then later is hired by another company for which he also produces a parser.  Assuming the first company retains the rights to the parser created there, the programmer has no way to avoid 'taint'.  Worse, a person tends to solve a given problem in a consistent fashion, so two applications created from scratch by the same person will naturally have structural similarities.  And whether or not a case concerning this could hold up in court, there is enough confusion about copyright law that it can actually come up.  Truth be told, I've considered leaving the professional software sector altogether and do this purely as a hobby simply to avoid such issues.


Sean
April 04, 2007
Derek Parnell wrote:
> Even if one uses it is a guide to how *not* to do things? That is, the
> clone is created in a form that is deliberately and explicitly not like the
> original - and this can be done because they know the original.

My experience has been that you're ok if you look at something, and then implement something in an utterly different way. But you're still better off not looking at it at all. Look at all the effort IBM had to put in to defend themselves against SCO because IBM had peeked at the code.
April 04, 2007
BCS wrote:
> Reply to Walter,
>> What will happen if things go far enough is an independent expert will
>> be hired by the lawyers who will comb through the code evaluating how
>> similar or dissimilar it is.
> And when that happens, the independent expert makes money, the lawyer makes money and everybody else pays them.

In cases I know about, a settlement offer usually appears before things go too far, because it gets pretty obvious if there was any hanky-panky.

I got a settlement once after running "strings" over the other company's binaries, and 90% of their string literals matched word-for-word the ones in mine, despite their claim they wrote it "from scratch". Oops. I'd have liked to have heard the conversation between the opposing lawyer and the engineers he represented after that one.
April 04, 2007
Sean Kelly wrote:
> Walter Bright wrote:
>>
>> If you're going to clone a function, you can't use someone else's copyrighted code as a guide. Even just looking at it could cause 'taint', which is why I never look at or work on gcc.
> 
> The whole situation is kind of a mess.  Say a programmer creates a parser for one company and then later is hired by another company for which he also produces a parser.  Assuming the first company retains the rights to the parser created there, the programmer has no way to avoid 'taint'.  Worse, a person tends to solve a given problem in a consistent fashion, so two applications created from scratch by the same person will naturally have structural similarities.  And whether or not a case concerning this could hold up in court, there is enough confusion about copyright law that it can actually come up.  Truth be told, I've considered leaving the professional software sector altogether and do this purely as a hobby simply to avoid such issues.

That's a serious issue, and I've been faced with it. I decided the easy way (but on the expensive side) was to negotiate a license. That way, everyone's happy.
April 04, 2007
Dan wrote:
> Considering that my Walnut 2.x engine performs much the same functionality as DMDScript, but that Walnut 2.x is written significantly differently on a structural level...
> 
> DMDScript is a GPL v1 engine, and Walnut 2.x is a new BSD engine.
> 
> When I fill in the function stubs for, for example, Number_prototype_toFixed, am I allowed to examine Walter's DMDScript source code, write something similar (but obviously not the same) and still call it new BSD?
> 
> What requirements are there to do such a thing?

Generally, the best way to implement something that someone else has written is to use a "clean room" technique where you isolate yourself from any possible external influences, as Walter and others have pointed out.  Even if you are clever enough to change or obfuscate all the identifiers, people are hard at working creating similarity programs that detect likeness without any exact matches.

On the one hand, you probably don't have to worry about Walter hunting you down with lawyers, because he knows you can't squeeze blood from a turnip.  On the other, if your library becomes as successful as you hope it does and DMDScript gets bought out by a SCO-like player, then you have a world of hurt coming your way.

Take a look at http://en.wikipedia.org/wiki/Clean_room_design and keep in mind that while the clean room technique may be a defense against copyright infringement, it is not a defense against patents (not sure if Walter has any patents on any D stuff, or if anyone does, but this seems like the smaller risk for you).  The fact that you are already part of the D community may strongly imply that you are already tainted.

Good luck.

Dave
April 04, 2007
David B. Held Wrote:
> Generally, the best way to implement something that someone else has written is to use a "clean room" technique where you isolate yourself from any possible external influences, as Walter and others have pointed out.  Even if you are clever enough to change or obfuscate all the identifiers, people are hard at working creating similarity programs that detect likeness without any exact matches.
> 
> On the one hand, you probably don't have to worry about Walter hunting you down with lawyers, because he knows you can't squeeze blood from a turnip.  On the other, if your library becomes as successful as you hope it does and DMDScript gets bought out by a SCO-like player, then you have a world of hurt coming your way.
> 
> Take a look at http://en.wikipedia.org/wiki/Clean_room_design and keep in mind that while the clean room technique may be a defense against copyright infringement, it is not a defense against patents (not sure if Walter has any patents on any D stuff, or if anyone does, but this seems like the smaller risk for you).  The fact that you are already part of the D community may strongly imply that you are already tainted.
> 
> Good luck.
> 
> Dave

Walter, if I may ask, examining Walnut 1.9 from: http://dsource.org/projects/browse/branches/1.9/source/

Is the code that I've currently written in any way derived from your works?  While, as people here have suggested, you probably won't come after me for it, your explicit agreement that it isn't so far would probably hold me not liable for that code.

Granted that, I guess I'm not allowed to program ever again, because I've read source code for practically everything - Ogre3D, various games, scripting engines, compilers, OS's, tools, algorithms and data structures.. I'm just a walking liability.

I'll miss you all so much.  *sniffle*

It's a damned good thing this turnip is dry.  : )
April 04, 2007
Dan wrote:
> http://dsource.org/projects/browse/branches/1.9/source/

That should probably be http://dsource.org/projects/walnut/browser/branches/1.9/source