April 29, 2010



----- Original Message ----
> From: Andrei Alexandrescu <andrei at erdani.com>
> To: Discuss the phobos library for D <phobos at puremagic.com>
> Sent: Thu, April 29, 2010 11:53:52 AM
> Subject: Re: [phobos] Tango and the new time lib
> 
> 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.
> We're better off just defining better abstractions; think of
where Phobos
> was in comparison to Tango before std.algorithm came about.

In the
> date/time case, we should be looking for inspiration at Boost -
work that's
> licensed under better terms, and of good quality to boot.

I developed a bunch of time stuff for Tango, but a lot of it was based on the existing code.  I pretty much recreated the existing API, modeled after C#'s TimeSpan and DateTime.  We can start from there too, since the source isn't easily available, and the API is pretty well described via msdn.  Just whoever does it, document that you never used Tango, and keep good records.  The problem with "staying away from tango" is that any good time library is going to be close to Tango's API (I think that's why SHOO's is!).

I find the idea that Tango has issues with this code to be completely asinine.  Like Andrei said, it's computing dates and times, it's not rocket science.  I checked the complicated code against Tango's (converting a time stamp into date components), and it's obviously not copied.   I don't think I will be contributing to Tango ever again.  I don't want to risk any more copyright infringement...

The only thing that is "copied" is the API, and even that isn't source compatible.

-Steve




April 29, 2010

Steve Schveighoffer wrote:
>
> I developed a bunch of time stuff for Tango, but a lot of it was based on the existing code.  I pretty much recreated the existing API, modeled after C#'s TimeSpan and DateTime.  We can start from there too, since the source isn't easily available, and the API is pretty well described via msdn.  Just whoever does it, document that you never used Tango, and keep good records.  The problem with "staying away from tango" is that any good time library is going to be close to Tango's API (I think that's why SHOO's is!).
>
> I find the idea that Tango has issues with this code to be completely asinine.  Like Andrei said, it's computing dates and times, it's not rocket science.  I checked the complicated code against Tango's (converting a time stamp into date components), and it's obviously not copied.   I don't think I will be contributing to Tango ever again.  I don't want to risk any more copyright infringement...
>
> The only thing that is "copied" is the API, and even that isn't source compatible.
>
> 

I just want to reiterate my experience with lawyers is that "I never looked at the source code" is an effective defense against charges of infringement. When I said that to the roomful of lawyers coming to do due diligence on some software they were buying from me, they closed their briefcases, said "that's all we needed to hear", and left.
April 29, 2010
Steve Schveighoffer <schveiguy at ...> writes:

> 
> 


Well, as long as we're boycotting tango and stealing things from C#, can we have a composite formatting engine for phobos?

I didn't notice too much in boost of any interest to me, but boost.bimap and boost.log caught my eye. I've found myself in need of the former more than once. It'd be a nifty addition to a collections library.

April 30, 2010
----- Original Message ----

> 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
Obligatory disclaimer: I am not a copyright lawyer.

Steve Schveighoffer wrote:
>
> Having viewed source or online docs that can contain source isn't enough to prove copyright infringement.

That is correct.

>   However, Walter's position is that if you don't look at others' source, the opposition doesn't have a leg to stand on.

Yes.

>   While this is true, *looking* at the other project's source does not mean you infringed on it.

That's also correct. The problem is, then the issue becomes having an independent expert witness go through the allegedly infringing code line by line and deliver an opinion on whether it infringes or not, and if the judge & jury buy one side's expert witness or the other side's. Even if you win, there's the lingering bad reputation. (Ask anyone who's been acquitted at trial.) Boo on that.

Having some taint and lingering suspicions of infringement for hobby software is not a big issue, but for software to be accepted for professional use, professionals absolutely will not take the risk of betting their companies and reputations on software with an iffy legal status. D and Phobos must be absolutely clean in this regard.

For a notorious example of the trouble this kind of thing can cause, just look at the ongoing Linux vs SCO wars in court.

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

I'm very sorry that SHOO got caught in the gears of this licensing issue. I apologize to him, and I sincerely hope this experience will not dissuade him from continuing to contribute to D.


1 2 3
Next ›   Last »