On Wednesday, October 10, 2012 00:02:50 Mark Lamberton wrote:
> I'm still not sure why
> (for example) Tango exists and what is its status relative to the
> D ecosystem.

It's a historical thing. Phobos in D1 sucked (probably because Walter was 
focused on the compiler and I don't think that there was as much community 
participation in Phobos at the time). So, folks wrote their own libraries. 
Tango was one of these and became the largest 3rd party D library. 
Unfortunately in D1, the runtime was not separate from Phobos, so when the 
Tango folks decided to do their own runtime, it made Phobos and Tango 
incompatible, forcing people to choose, and because Tango was better, they 
almost always chose Tango. This made it so that some people considered Tango 
to be D's standard libray even though this was never technically the case (it 
just got used instead of D's standard library).

For D2, Phobos is much better and has much stronger community support, so 
Tango isn't as necessary. And it wasn't until fairly recently that anyone 
ported Tango to D2 (and it's not even the official Tango devs that did it). So, 
Tango hasn't even been an option for D2 until recently, and I think that for 
the most part, the only people who use it are those who used D1 and want to 
continue to use Tango. So, I suspect that while it does get used for D2, there 
probably aren't very many people use it.

However, since the runtime has been split out from Phobos in D2 (in fact, 
druntime was ported from Tango by one of the Tango developers who continues to 
work on druntime - Sean Kelly), it's possible to mix Phobos and Tango in D2, 
making it so that there's no need to choose exclusively one or the other. But 
they _do_ have very different design philosophies, so you probably wouldn't mix 
them heavily.

The main thing to be aware of about Tango at this point (beyond the basic 
history of why it's there, if you care) is the fact that it uses a more 
restrictive license than Phobos, so you can't port code from Tango to Phobos 
without the permission of the authors of that code, and it's generally advised 
that anyone working on Phobos not look at Tango just to avoid the possibility 
of anyone accusing them of stealing code (not to say that that would happen or 
that anyone would be necessarily be accused of that - but we want to avoid any 
possible misunderstandings).

In the long run, I expect that most of this will be forgotten. Either Tango 
will disappear (which is highly likely unless it gets higher adoption in D2), 
or it will just become another popular 3rd party library with cool stuff that 
you can use, and its status as pseudo-standard library of D1 will be mostly 
forgotten. But it caused enough confusion and strife in the past that many who 
have heard of D but don't know much about it end up asking whether D still has 
two standard libraries and whether any major divisions in the community like 
that still exist.

- Jonathan M Davis

Reply via email to