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