On Fri, 30 Apr 2010 09:14:24 -0400, Daniel Keep <daniel.keep.li...@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

Reply via email to