No longer using/contributing to Tango

Steven Schveighoffer schveiguy at yahoo.com
Fri Apr 30 04:45:23 PDT 2010


I'm just writing this to let everyone know that I no longer intend to have  
any dealings with Tango.  If anyone wants to read the reason why, I have  
copied my post on the Phobos mailing list, sparked by Tango's insistence  
that SHOO's time library is stealing Tango's time code.  I advise anyone  
who wishes to contribute to Phobos, or who has commercial code that uses  
D, to consider the consequences that may occur from using Tango code:


> From: Ellery Newcomer <ellery-newcomer at utulsa.edu>
> Well, as long as we're boycotting tango and stealing things from C#,

Modeling an API after C# is not stealing.  There is very little chance you  
see the actual code, so all you have to do is read and understand the API,  
then you can make a similar API for Phobos.  It is how I created the time  
structures in Tango, modeled after C#.

Tango is quite different since the source is available, and even present  
in the documentation (by clicking on a link, you can see the entire source  
file).  Therefore, Tango can claim at any point that you looked at their  
source, and therefore started your project by copying it.  To get around  
this, you have to not use or view Tango.  The Tango team's insistence on  
pursuing obviously non-infringing cases, and their broad interpretation of  
"viewing the code" is probably a good reason why companies will not use  
their code, even more than the BSD license.  Nobody wants to let a kid  
play in their yard when their parents have a history of suing when their  
kid gets hurt.

Having viewed source or online docs that can contain source isn't enough  
to prove copyright infringement.  However, Walter's position is that if  
you don't look at others' source, the opposition doesn't have a leg to  
stand on.  While this is true, *looking* at the other project's source  
does not mean you infringed on it.  In the time lib case, I believe SHOO  
is perfectly fine how he mimicked the Tango API (it's not exactly  
mimicked, but close enough that Tango devs think it's copying).  But  
Walter has his position, and will not bring the confrontation to a head,  
so those are the rules we have to live by.

Boost is acceptable to copy outright, because it has the same license.   
Tango is not.  If Tango changed it's license to boost (which I'm sad to  
say, I don't believe it ever will), then all this becomes moot, we just  
copy and paste the Tango copyright notice and call it a day.

Libraries where you cannot view the code are much easier to claim you  
didn't view the code, because you can't view it!

I pledge from now on to have no dealings with Tango, I will never download  
or view another piece of their documentation or source, as I intend to  
contribute to Phobos.  I will remove all Tango source from my computer.  I  
would contribute to both, but clearly the Tango team is not interested in  
being lenient on obviously non-infringing cases, so I respectfully must  
remove myself from that risk position.

And yeah, Lars, it is asinine.  We all want to follow the wishes of  
contributors, but give me a break!  The Tango.time library is not an  
amazing new algorithm.  There's practically only one way to write time  
code that's modeled after C#, and as far as I can tell, you have not  
brought forth any tangible evidence that Tango's time library was copied.   
You say that the doc generator isn't good enough to be able to do a  
clean-room implementation, but have you looked at Tango.time?  It's not  
that complex, and is pretty fully documented.  The doc generator does a  
good enough job to describe the API and functionality, I should know  
because *I documented it*.  Having rewritten most of Tango.time, I don't  
see anything so far that looks like it was copied.  I feel bad for SHOO  
that he was caught in the middle of this, his lib looks well written.


-Steve


More information about the Digitalmars-d-announce mailing list