Can we all please stop overreacting?

Steven Schveighoffer schveiguy at yahoo.com
Fri Apr 30 07:17:26 PDT 2010


On Fri, 30 Apr 2010 09:14:24 -0400, Daniel Keep  
<daniel.keep.lists at gmail.com> wrote:

> #1: Tango didn't block SHOO's code.

Kris and Lars contacted me to ask about it, and I indicated that I had  
alleviated all my concerns that the code was not copied, after having  
examined his code against Tango's existing code, and getting his response  
on the NG.  In a statement, which Lars repeated in the mailing list  
(linked in your post), he indicated that it would be very hard to do a  
"clean room" implementation of Tango's code simply because the doc  
generator does not always capture every nuance of the API.  He also  
implied that only a clean room implementation was free of infringement  
when APIs are similar (paraphrasing, see exact quote linked in Daniel's  
post).  I don't know the timeline of when he sent the email to me and when  
they contacted Walter, but I'm assuming they received my position before  
contacting him.

To be fair, Walter is the one who blocked the code, and arguably, he could  
fix this situation by just accepting that the code does not infringe  
through reasonable logic.  But I understand both Tango's position and  
Walter's position.  I don't actually agree with either of them.  I just  
happen to think my best interests are served by contributing to the  
project which is least restrictive.  By doing this, my code can be used in  
Phobos and in Tango, as long as someone else ports it to Tango.

> Nevermind the fact that Tango's time API is derived from Microsoft's in
> .NET.  If Walter /had/ adopted SHOO's code, and it was similar to
> Tango's, he's far more likely to have problems with Microsoft.

Microsoft would have zero ground to stand on -- their code is not  
available to SHOO unless he signed an NDA.

Tango also copied almost wholesale their formatting style.  This is of the  
same type of "copying".  Copying ideas and design is done regularly, you  
cannot copyright ideas.

> #2: Tango is not deliberately licensed to prevent cooperation with  
> Phobos.

I believe this as well, Tango is licensed the way it is because of the  
reasons you stated.  It's unfortunate that the license cannot be changed,  
I wish that could be different.

> Walter also suggested that all new code be licensed under Boost.  The
> maintainers do not want to go down this road because they have expended
> considerable time and effort attempting to bring Tango down to a single
> license.

There is another problem here.  In order to dual-license your code, you  
have to be the sole owner of it.  For example, someone (like myself)  
contributing improvements, even if almost completely rewrites, is still  
obligated to obey the license of the base code.  The time library falls  
into this category, I made massive modifications to the library, but my  
changes fall under the original license as a derivative work.  Until  
SHOO's code was deemed to be possibly infringing, I thought it would be  
feasible for me to re-implement Phobos' time in a similar manner to how  
SHOO did, using my experience with Tango's time code.  Now I see this will  
be unworkable (mostly because it's outside Walter's comfort zone).  As an  
example of free-and-clear code, Don's BigInt module is fine because he  
owns all parts of it.

I'll give you another example.  Dcollections was originally written to be  
a replacement for Tango's collection classes.  Although I wrote all the  
code from scratch, it bears vast similarities to Tangos' old collection  
package, because I did that intentionally.  When Tango declined to accept  
it as an improvement, I created a new project because I wanted to keep  
developing it.  I had hoped at some point it could be contributed to  
Phobos.  But now, I am concerned that Walter would reject it because of  
the hint of infringement.  I will still maintain the library separately,  
but the possibility that all my hard work is not usable how I see fit  
pisses me off to the point where I am just done with Tango.  Whose fault  
is it?  I don't care.

I wrote my post to make people aware of the possibility that I see, and  
the conclusions that I have reached, so they can make an informed decision  
of whether to use/contribute to Tango or not.  I'm leaving it up in the  
air as a possibility, so it's not perceived as an accusation.

> Some Tango devs noticed similarities between SHOO's code and Tango.
> Kris phoned Walter privately to let him know and give him a chance to
> either inspect the code himself or possibly ask SHOO to clarify whether
> the code was based at all on Tango.

SHOO has already clarified, in several posts to the NG.  I specifically  
asked him whether he used Tango as a base, and he said he did not.

At the same time, Tango devs could examine the code and say whether they  
think it infringes or not.

> As far as I can see, most of what's happened since then has been a
> massive overreaction.

Is it?  How about you write a really cool piece of code and then try to  
contribute it only to find that Tango or Walter has mild concerns about  
it's legitimacy.  How would you feel if Tango suggested you might have  
stolen their code?

-Steve


More information about the Digitalmars-d-announce mailing list