I've decided to learn D, and I'm wondering which standard library I should use. Should I use Phobos or Tango? What are the pros and cons of each?
8 Answers
If you need to use D2 then phobos is what you should use for now but tango for D2 is in development.
tangobos allows to use tango and phobos together at the same time. In D2 both work together anyway as they both make use of the separate druntime.

- 5,031
- 8
- 38
- 45
Tango is currently outdated. It only works with the old version of D. In my opinion, Phobos is the only way forward.
I wasn't following d when all of the split library arguments were going on, but from what I can tell, a lot of the reasons for Tango disappeared when D2 was released.
There is a small effort aimed at reviving Tango, but in my opinion having a split in the standard library only hurts D as a whole.
Also barring some major event, Phobos is virtually guaranteed to be supported on every release of D. Even if Tango gets ported to D2 successfully, it could easily be abandoned again.

- 503
- 4
- 11
From Dispelling Common D Myths:
Phobos is D's standard lib, period. Tango is now an optional but Phobos-compatible third party library. That's all there is to it.

- 1,094
- 13
- 23
Tango. It's more object-oriented where appropriate, it includes containers (like STL or Java Collections), it's got an active development team, it has more momentum (it may soon be incorporated into the official compiler), and it's got real documentation, including Learn to Tango with D.
It looks like Tango may soon be incorporated into Walter's releases.

- 5,705
- 1
- 32
- 30
-
39While this comment was true in 2009 when this post was written, it is no longer the case. Tango doesn't even exist for D2 and now has very little mommentum. The development of phobos has opened greatly and it is receiving a lot of love. – EricP Jun 29 '11 at 18:03
-
There is the TangoD2 project which brings Tango to the D2 world. It is worth taking a look, at least until Phobos gets a proper stream IO package (the stream API in Phobos is deprecated!). – DejanLekic Jan 16 '17 at 16:59
I've had little experience with both (kinda ..)
Phobos is more flat and python-like, but quite incomplete.
Tango is more Java-like, it makes simple things complicated.
I personally prefer to go with phobos, unless you need a library that depends on Tango (such as DWT).

- 161,647
- 65
- 194
- 231
-
1One thing I hate about Tango is that it made itself incompatible with Phobos – hasen Mar 28 '09 at 23:13
-
Tango was an amazing project. That critic about it being Java-like is nonsense. If anything Java influence made Tango the best designed library I have seen even today when it is not actively developed... However, Phobos was always THE standard library, and that is why I have always recommended Phobos instead of Tango... – DejanLekic Jan 16 '17 at 16:55

- 399,953
- 195
- 994
- 1,670

- 3,648
- 2
- 26
- 25
-
@FeepingCreature, might I suggest adding that document somewhere on Wiki4D, or as a page in the "D Programming Language" Google group? – he_the_great Mar 29 '09 at 22:17
If you use D2, use Phobos
If you use D1, use Tango.
And you must learn D2, so use Phobos. Easy, not ?
Note : Phobos for D2 it's much powerfull and bigger that for D1.

- 590
- 5
- 17
In my opinion, (having never actually used Boost), Tango is more like Boost, and Phobos is more elegant. As was stated above, using Phobos is much like Python.

- 956
- 1
- 7
- 11