Jump to page: 1 2 3
Thread overview
No longer using/contributing to Tango
Can we all please stop overreacting?
Apr 30, 2010
Daniel Keep
Apr 30, 2010
lurker
Apr 30, 2010
FeepingCreature
Apr 30, 2010
Daniel Keep
Apr 30, 2010
Walter Bright
Apr 30, 2010
FeepingCreature
Apr 30, 2010
Don
Apr 30, 2010
another lurker
Apr 30, 2010
Nick Sabalausky
Apr 30, 2010
Don
May 04, 2010
Sean Kelly
May 04, 2010
Gurney Halleck
May 05, 2010
Charles Hixson
May 01, 2010
FeepingCreature
Apr 30, 2010
retard
Apr 30, 2010
Nick Sabalausky
Apr 30, 2010
Walter Bright
Why all this fuss?
Apr 30, 2010
Moritz Warning
Apr 30, 2010
FeepingCreature
April 30, 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
April 30, 2010
Ok, let's clear some things up.

#0: I do not represent Tango in any official capacity.

I am posting this because I can see this situation spinning out of control and I just want everyone to stop trying to strangle each other.

Believe it or not, we're all (ostensibly) on the same side here.

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

I cannot find any indication that anyone representing Tango /ever/ said "SHOO copied from us."

Based on what Kris has said in IRC [1] and from asking Lars, the intent, if not the specific content, was this:

 "At casual examination, SHOO's code looks similar to Tango's."

There were no demands to block SHOO's code, no cries of theft.

Kris phoned Walter to let him know about there being a *potential* issue.  This was a courtesy given that Walter has demonstrated extreme caution when it comes to IP issues.  Kris could have posted it on the newsgroup, but I suspect he didn't because he would have been flamed for accusing SHOO of stealing.

It is also worth pointing out that if the case is simply that SHOO's code has a similar API, then there is little reason to block the code. If copyrighting an API was possible, the Wine and Mono projects would have been burned to the ground and had the earth beneath them salted years ago.

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.

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

I've seen cries from several parties that Tango should just re-license to Boost so that changes can be incorporated into Phobos.  I've also seen a few accusations that the current situation was engineered to prevent any code from being pulled into Phobos.

This is nonsense.  Firstly, keep in mind that Phobos wasn't always under a single, unified license.  Bits of it were Public Domain, bits were modified BSD.  Tango was started several years ago, and expecting them to have anticipated Walter's move to Boost is simply unreasonable.

Second, Tango is the merging of two prior projects: Ares and Mango. This is where Tango's original BSD+AFL license comes from.  The Tango maintainers are legally required to honour their obligations to the contributors of those projects.

Thirdly, the Tango maintainers have *ALREADY TRIED* to change Tango's license.  They wanted to move to just Apache 2.0 on the basis that it was similar enough to the AFL to allow this without too much trouble.

The problem was that of the 50-odd contributors, there are people who they simply couldn't get in contact with.  Without express permission, they *CANNOT* legally change the license to something incompatible.

Walter has suggested two things recently; one was that Tango simply be relicensed as Boost.  As I've noted above, they just can't.

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.

Tango's current dual-license state has been cited as a pain point for users.  My own personal experience is that I was very unsure for a very long time how to legally make use of Tango. [2]

Licensing all new code under Boost would drive Tango straight back into a situation the maintainers have been trying to get out of.  They're also worried that any attempt to purge Tango of all code they can't get relicensed would tie up the whole project for months while code was carefully audited, rewritten, retested, redebugged, etc.

Let me also point out something that seems to be routinely ignored in these arguments: there is nothing, *ABSOLUTELY NOTHING* which prevents code being taken from Tango and then being incorporated into Phobos.  It does not require other modules to be licensed any differently.  It simply requires the attribution clause to be acknowledged.

This is unpalatable, I understand.  But this is no different to Walter's suggestion that Tango be dual-licensed under both BSD and Boost.  Nor is it different to finding some other library you want to include and having to honour the licensing terms.

The upshot of all the above is that it's simply not practical at this moment in time to change Tango's license.

-----

Now, could we all please stop with the personal attacks and demonisation of the "other side"?  This isn't a war, for Pete's sake.

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.

No demands, no threats.

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

-----

In closing, I'd like to link directly to some of the threads in question.  These all took place on the Phobos developers' list; until yesterday, I had no idea this list even existed, so I'm adding these links for others who may not have seen these posts.

gmane.comp.lang.d.phobos: http://news.gmane.org/gmane.comp.lang.d.phobos

Walter's post regarding Kris' call: http://thread.gmane.org/gmane.comp.lang.d.phobos/335

(Again, I want to stress that, to my understanding, Kris did not tell Walter that SHOO's code was "an infringement on [the Tango] license.")

Walter's subsequent post on the subject of licensing: http://thread.gmane.org/gmane.comp.lang.d.phobos/358

Lars' post responding to the issue: http://thread.gmane.org/gmane.comp.lang.d.phobos/359



[1] I'm using my recollection of events, here.  I was online at the time, but my client doesn't log chats.

[2] For the record, I'm not a fan of the binary attribution clause. Then again, neither is Lars.
April 30, 2010
So far I've been just lurking here, but these are my 5 cents.

I think the library situation is terrible. It's not for the good of D. We should just simple ditch Tango. It's D 1.0 only and always causing trouble. We absolutely need support from professionals and enterprises. D is growing fast. The need for attribution is just intolerable, we need brown tongue attitude to lure in the big money. Would a professional use BSD? I agree Boost has very high quality and they might not even notice/care if we "steal" from them.

I totally agree with the convincing arguments I found from the mailing list:

"Now I'm glad I never looked at Tango. I don't empathize with the Tango fellows keeping their precious locked because it's very difficult to frame that action as having D's community interest at heart. To be frank their whole motivation looks petty and political to the extreme, particularly because it's not a rocket science library."

"I think for practical reasons we should simply stay away from Tango. We'd be wasting time otherwise. It's not like they discovered the cure for cancer."
April 30, 2010
On 30.04.2010 15:46, lurker wrote:
> So far I've been just lurking here, but these are my 5 cents.
> 
> I think the library situation is terrible. It's not for the good of D. We should just simple ditch Tango. It's D 1.0 only and always causing trouble. We absolutely need support from professionals and enterprises. D is growing fast. The need for attribution is just intolerable, we need brown tongue attitude to lure in the big money. Would a professional use BSD? I agree Boost has very high quality and they might not even notice/care if we "steal" from them.
> 
> I totally agree with the convincing arguments I found from the mailing list:
> 
> "Now I'm glad I never looked at Tango. I don't empathize with the Tango fellows keeping their precious locked because it's very difficult to frame that action as having D's community interest at heart. To be frank their whole motivation looks petty and political to the extreme, particularly because it's not a rocket science library."
> 
> "I think for practical reasons we should simply stay away from Tango. We'd be wasting time otherwise. It's not like they discovered the cure for cancer."

Would be nice if you'd actually refer to your parent post in, you know, _any_ way instead of rehashing the very arguments they debunked.

Phobos1 is shit. The Tango devs know this, the Phobos devs know it. Anyone who denies it has never compared the Phobos and Tango sourcecode.

Your "simple" solution is never gonna happen. You're not freaking Alexander the Great, cutting the Gordian Knot. The way D2 is going is the best solution for both sides, imho; but _anything_ that prevents Tango/Phobos interop in D2, or pushes away Tango devs, or pushes away Phobos devs - should be treated as a *severe* threat to the future of the language. We *absolutely need* to present a unified front in D2. We fucked this up once already; let's not repeat that experience.

 --feep
April 30, 2010
On Fri, 30 Apr 2010 09:14:24 -0400, Daniel Keep <daniel.keep.lists@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
April 30, 2010
On Fri, 30 Apr 2010 07:45:23 -0400, Steven Schveighoffer wrote:

> I feel bad for
> SHOO that he was caught in the middle of this, his lib looks well
> written.
Phobos and Tangos license are both chosen to be for the greatest benefit
to it's users.
That they may differ is no contradiction, the sentient is the same.

I feel that the issue is getting ridiculous as nobody wants to block anyone. We want to help each other coding, getting stuff done and help to get around license issue because they suck.
April 30, 2010
On 30.04.2010 16:20, Moritz Warning wrote:
> On Fri, 30 Apr 2010 07:45:23 -0400, Steven Schveighoffer wrote:
> 
>> I feel bad for
>> SHOO that he was caught in the middle of this, his lib looks well
>> written.
> Phobos and Tangos license are both chosen to be for the greatest benefit
> to it's users.
> That they may differ is no contradiction, the sentient is the same.
> 
> I feel that the issue is getting ridiculous as nobody wants to block anyone. We want to help each other coding, getting stuff done and help to get around license issue because they suck.

Preach it. Everyone needs to remember this.
April 30, 2010

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

To succinctly reply to the majority of your post: thanks for responding.  :)

I understand your position, and sympathise.  The whole situation is ridiculous (not merely the current developments).  But with the combination of Walter's fear of IP issues and Tango's licensing situation, I suppose something like this was inevitable.

Personally, I just hope that there are enough bridges left standing after this to get the mess sorted out.

>> 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

I won't discuss the details, but I *have* been accused of ripping off someone else's code.  It was particularly hurtful given that my code was written entirely separately without ever having even used, let alone seen, the other person's code.  The accusation was based, literally, on the name of a single function.

And yeah, it really upset me to be called, more or less, of being a cheat and a liar.

But I didn't copy from them, and I knew that the accusation was baseless.  Rather than throw away my code, I double-checked that there was nothing that could be reasonably seen to be copied and moved on.
April 30, 2010
On 04/30/2010 08:14 AM, Daniel Keep wrote:
> #1: Tango didn't block SHOO's code.
>
> I cannot find any indication that anyone representing Tango /ever/
> said "SHOO copied from us."
>
> Based on what Kris has said in IRC [1] and from asking Lars, the
> intent, if not the specific content, was this:
>
> "At casual examination, SHOO's code looks similar to Tango's."
>
> There were no demands to block SHOO's code, no cries of theft.
>
> Kris phoned Walter to let him know about there being a *potential*
> issue.  This was a courtesy given that Walter has demonstrated
> extreme caution when it comes to IP issues.  Kris could have posted
> it on the newsgroup, but I suspect he didn't because he would have
> been flamed for accusing SHOO of stealing.
>

I think, given the situation, that a phone call is bound to mean
something.

> Now, could we all please stop with the personal attacks and
> demonisation of the "other side"?  This isn't a war, for Pete's
> sake.

You're making the situation look symmetrical. It isn't.


Andrei
April 30, 2010
On 30.04.2010 17:22, Andrei Alexandrescu wrote:
> I think, given the situation, that a phone call is bound to mean something.

Well .. what does it mean? I mean, what do you mean it means. Not saying what you mean is just mean.

> 
>> Now, could we all please stop with the personal attacks and demonisation of the "other side"?  This isn't a war, for Pete's sake.
> 
> You're making the situation look symmetrical. It isn't.
> 

It is, in fact, asymmetrical; but in two different directions. In my experience, on average, Tango has higher quality of code whereas Phobos has more support from Phobos developers. The quality-of-code metric seems to be universally acknowledged - after all, druntime itself is a fork of tango core. "We think you suck, so we'll base our new standard library on your work. " I am starting to consider that accusations of arrogance contain a smitten of projection, maybe.
> 
> Andrei

 --feep
« First   ‹ Prev
1 2 3