SQL working [ was Re: The sorry state of the D stack? ]
Jonathan M Davis
jmdavisProg at gmx.com
Tue Oct 9 19:17:24 PDT 2012
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
More information about the Digitalmars-d
mailing list