Es gibt zwei von ihnen Phobos und Tango. Soweit ich weiß, sind sie redundant und inkompatibel. Gibt es Pläne, sich ihnen anzuschließen? Wenn ja, wann wird es passieren?Wie ist der aktuelle Status von D-Standardbibliotheken?
Antwort
Ein gemeinsamer Kern namens druntime wurde für D2 gebaut. Das Low-Level-Runtime-Zeug, wie Garbage Collection und Threading, war zuvor die Barriere für Phobos und Tango, die im selben Projekt interoperierten. Die höhere Funktionalität von Phobos hing von der Phobos-Laufzeit und ebenso von Tango ab.
Ein großes Update für Phobos wurde veröffentlicht (gerade gestern (20.04.09) als eine Tatsache). Dieses Update versucht, einige der neuen Features von D2 zu nutzen und führt das Konzept der Bereiche ein, die wie Iteratoren sind, aber einfacher zu handhaben und leistungsfähiger sind. D2 Phobos unterscheidet sich stark von seinem unterentwickelten D1-Pendant.
Tango ist mit Abstand die bessere Standardbibliothek für D1. Ein D2-Port ist in Bearbeitung und wird wahrscheinlich viel schneller fortschreiten, wenn D2 stabil ist. Eine große Frage ist, ob die Tango-Entwickler sie aktualisieren werden, um die D2-Funktionen voll auszunutzen, oder ob sie sich einfach darauf konzentrieren werden, D2 so zu nutzen, wie sie es mit D1 tun.
Im Gegensatz zu den beiden Bibliotheken konzentriert sich Phobos eher darauf, einfache Dinge einfach zu machen, syntaktischen Zucker, Bequemlichkeit und die Grenzen dessen, was in einer Standardbibliothek getan werden kann. Es ist eine Art Kreuzung zwischen STL und Pythons Standard-Bibliothek, so seltsam das klingt. Tango neigt dazu, eher ein Java-ähnliches Gefühl zu haben. Es konzentriert sich mehr auf die Breite der Funktionen und auf die Handhabung ungewöhnlicher Anwendungsfälle. Es bleibt mehr innerhalb der vernünftigen Teilmenge von D (nicht so sehr Template-Metaprogrammierung usw., obwohl wohl ein Hauptmerkmal von D darin besteht, die Template-Metaprogrammierung auf den gesunden Subset-Status zu fördern) und einen pragmatischeren Ansatz für das API-Design.
Meine Vermutung (Spekulation, aber es ist sehr sinnvoll) ist, dass Phobos wird analog zu STL, dh eine wirklich Standard-Bibliothek von Kernfunktionen, und Tango wird eine Dienstprogramm-Bibliothek, ähnlich wie Boost, als mehr seiner Kernfunktionalität wird in Phobos und/oder druntime absorbiert.
Schließlich wird, wie andere bereits erwähnt, wird D1 soll stabil sein, so dass hier nichts ändert.
Sieht aus wie ab Oktober sie moving toward compatibility waren, aber ich weiß nicht, was da dann ...
passiertEdit:
ich auch this gefunden, die nicht geplant sind, um anzuzeigen, scheint tatsächlich verschmelzen:
Es wird keine Änderungen an der Situation für D1 geben. Allerdings hat D2, wie von Version 2.020, Phobos geteilt in 2 Bibliotheken, druntime.lib und phobos.lib. Dies ermöglicht es, eine gemeinsame Laufzeit mit Phobos und Tango zu verwenden. Während beide Bibliotheken zusammenführen oder sogar Tango mit Freigaben von DMD einschließen, wird dies beide Bibliotheken ermöglichen, um die gleiche Zeit ohne eine Kompatibilität Schicht verwendet werden.
Tangobos ist ein Versuch, die beiden kompatibel zu machen.
In 2.0 wird Tango in der Lage sein, als Dienstprogrammbibliothek auf einem gemeinsamen Kern zu arbeiten. Der gemeinsame Kern ist bereits vorhanden, das Tangoprojekt hat jedoch noch keine 2.0-Unterstützung.
In 1.0 wird es keine Änderung geben. Dies liegt daran, dass die 1.0-Spezifikation effektiv eingefroren ist, damit sich ein stabiles Ziel entwickeln kann.