Ich habe beschlossen, D zu lernen, und ich frage mich, welche Standardbibliothek ich verwenden soll. Sollte ich Phobos oder Tango benutzen? Was sind die Vor- und Nachteile von jedem?Sollte ich Phobos oder Tango verwenden?
Antwort
Tango. Es ist objektorientierter, wo es angebracht ist, es enthält Container (wie STL oder Java Collections), es hat ein aktives Entwicklungsteam, es hat mehr Dynamik (es könnte bald in den offiziellen Compiler aufgenommen werden), und es hat echte Dokumentation, einschließlich Learn to Tango with D .
Es sieht so aus, als könnte Tango bald in Walters Veröffentlichungen integriert werden.
Während dieser Kommentar im Jahr 2009 wahr war, als dieser Beitrag geschrieben wurde, ist es nicht mehr der Fall. Tango existiert nicht einmal für D2 und hat jetzt sehr wenig Momentum. Die Entwicklung von Phobos hat sich sehr geöffnet und es wird viel Liebe empfangen. – Dwayne
Es gibt das TangoD2-Projekt, das Tango in die D2-Welt bringt. Es lohnt sich, zumindest einen Blick darauf zu werfen, bis Phobos ein richtiges Stream-IO-Paket bekommt (die Stream-API in Phobos ist veraltet!). – DejanLekic
Ich habe den Menschen lesbaren Titel Link – jfs
@FeepingCreature hinzugefügt, kann ich vorschlagen, dieses Dokument irgendwo auf Wiki4D oder als Seite in der Google-Gruppe "D-Programmiersprache" hinzuzufügen? –
Ich habe wenig Erfahrung mit beiden hatte (ein bisschen ..)
Phobos ist flacher und Python-like, aber recht unvollständig.
Tango ist mehr Java-ähnlich, es macht einfache Dinge kompliziert.
Ich persönlich bevorzuge mit Phobos, es sei denn, Sie benötigen eine Bibliothek, die auf Tango (wie DWT) abhängt.
Eine Sache, die ich an Tango hasse, ist, dass sie sich mit Phobos unvereinbar macht. – hasen
Tango war ein erstaunliches Projekt. Dieser Kritiker, dass er Java-ähnlich ist, ist Unsinn. Wenn irgend ein Java-Einfluss Tango zur bestausgestatteten Bibliothek machte, die ich bis heute gesehen habe, wenn sie nicht aktiv entwickelt wird ... Phobos war jedoch immer die Standardbibliothek, und deshalb habe ich immer Phobos anstelle von Tango empfohlen ... – DejanLekic
Wenn Sie D2 verwenden, verwenden Phobos
Wenn Sie D1 verwenden, Tango verwenden.
Und Sie müssen D2 lernen, also Phobos verwenden. Einfach, nicht?
Hinweis: Phobos für D2 ist viel leistungsfähiger und größer als für D1.
Tango ist derzeit veraltet. Es funktioniert nur mit der alten Version von D. Meiner Meinung nach ist Phobos der einzige Weg nach vorn.
Ich folgte nicht d, als alle Argumente der geteilten Bibliothek gingen, aber von dem, was ich sagen kann, verschwanden viele Gründe für Tango, als D2 veröffentlicht wurde.
Es gibt eine kleine Anstrengung, die darauf abzielt, Tango wiederzubeleben, aber eine Spaltung in der Standardbibliothek tut meiner Meinung nach nur D als Ganzes schaden.
Phobos wird auch bei jeder Veröffentlichung von D fast garantiert unterstützt. Auch wenn Tango erfolgreich auf D2 portiert wird, könnte es leicht wieder aufgegeben werden.
Meiner Meinung nach (ohne Boost tatsächlich benutzt zu haben), ist Tango eher Boost, und Phobos ist eleganter. Wie oben erwähnt, ist die Verwendung von Phobos wie Python.
Von Dispelling Common D Myths:
Phobos ist D's Standard-lib, period. Tango ist jetzt eine optionale, aber Phobos-kompatible Third-Party-Bibliothek. Das ist alles dazu.
- 1. Sollte ich hier wakeFromNib oder initWithCoder verwenden?
- 2. Sollte ich Typklassen verwenden oder nicht?
- 3. Wann sollte ich Subdomains verwenden oder vermeiden?
- 4. Sollte ich Angular.copy() oder _.clone() verwenden?
- 5. Sollte ich DirectInput oder Windows-Nachrichtenschleife verwenden?
- 6. Wann sollte ich @JoinColumn oder @JoinTable verwenden?
- 7. Sollte ich Klassenvererbung verwenden oder nicht?
- 8. PHP oder Javascript, die ich verwenden sollte
- 9. Sollte ich Threads oder mehrere Prozesse verwenden?
- 10. Sollte ich Pylons oder Pyramid verwenden?
- 11. Sollte ich Int oder UInt16 verwenden?
- 12. Sollte ich Meteor.startup() oder $ (function() {}) verwenden
- 13. Sollte ich Methoden oder konstante Flags verwenden?
- 14. Sollte ich SqlGeometry oder SqlGeography verwenden?
- 15. Sollte ich Pickle oder cPickle verwenden?
- 16. Sollte ich tsd oder typings verwenden?
- 17. Sollte ich rand() oder rand_s() verwenden?
- 18. Sollte ich IB oder Unterklasse verwenden UIView
- 19. therubyracer oder nodejs, welche sollte ich verwenden?
- 20. Sollte ich string.isEmpty() oder "" .equals (string) verwenden?
- 21. sollte ich "Set" oder "Liste" verwenden
- 22. Sollte ich em oder px verwenden?
- 23. Sollte ich eval() oder call_user_func() verwenden?
- 24. Sollte ich WPF-Konverter oder Trigger verwenden?
- 25. Sollte ich Interface Builder verwenden oder nicht?
- 26. Sollte ich ReAllocHGlobal oder FreeHGlobal/AllocHGlobal verwenden?
- 27. Sollte ich Path.GetRandomFileName verwenden oder eine Guid verwenden?
- 28. Sollte ich Eigenschaften in meinen C# -Programmen verwenden oder sollte ich get/set-Accessoren verwenden?
- 29. sollte size_t oder ssize_t verwenden
- 30. Sollte ich beitreten oder sollte ich UNION
Werfen Sie auch einen Blick hier: –
dirkgently