Ci sono due di loro Phobos e Tango. Per quanto ne so sono ridondanti e incompatibili. Ci sono piani per unirsi a loro? Se sì, quando accadrà?Qual è lo stato corrente delle librerie standard D?
risposta
Un nucleo comune, denominato druntime, è stato creato per D2. Il materiale di runtime di basso livello, come la garbage collection e il threading, era in precedenza l'ostacolo all'interazione tra Phobos e Tango nello stesso progetto. La funzionalità di livello superiore di Phobos dipendeva dal runtime di Phobos e allo stesso modo da Tango.
Un importante aggiornamento di Phobos è stato rilasciato (solo ieri (il 4/20/09) è un dato di fatto). Questo aggiornamento cerca di utilizzare alcune delle nuove funzionalità di D2 e introduce il concetto di intervalli, che sono come gli iteratori ma più facili da utilizzare e più potenti. D2 Phobos è molto diverso dalla sua controparte D1 sottodimensionata.
Tango è di gran lunga la libreria standard migliore per D1. Una porta D2 è in corso e probabilmente progredirà molto più rapidamente quando D2 è stabile. Una grande domanda è se gli sviluppatori di Tango lo aggiorneranno per sfruttare appieno le funzionalità di D2, o se si concentreranno semplicemente sul fatto di farlo funzionare con D2 nello stesso modo in cui lo fa con D1.
contrasto le due biblioteche, Phobos tende a concentrarsi di più sul fare le cose semplici semplici, zucchero sintattico, convenienza e spingendo la busta di ciò che può essere fatto in una libreria standard. È una sorta di incrocio tra STL e la libreria standard di Python, per quanto strano possa sembrare. Tango tende ad avere più di un aspetto simile a Java ad esso. È più focalizzato sull'ampiezza delle funzionalità e sulla gestione di casi d'uso inusuali. Rimane più all'interno del sano sottoinsieme di D (non tanto per la metaprogrammazione dei modelli, ecc., Anche se probabilmente una delle caratteristiche principali di D è quella di promuovere la metaprogrammazione dei modelli per lo stato di sottoinsiemi sano), e adotta un approccio più pragmatico alla progettazione dell'API.
La mia ipotesi (la speculazione, ma ha molto senso) è che Phobos diventerà analogo a STL, ovvero una libreria veramente standard di funzionalità di base, e Tango diventerà una libreria di utilità, un po 'come Boost, come molte delle sue funzionalità principali sono assorbite da Phobos e/o dal druntime.
Infine, come altri hanno notato, D1 dovrebbe essere stabile, quindi qui non sta cambiando nulla.
Sembra che a partire da ottobre erano moving toward compatibility, ma non so cosa è successo da allora ...
Edit:
Ho anche trovato this, che sembra indicare non ci sono piani per in realtà unire:
Non ci saranno cambiamenti nella situazione per D1. Tuttavia D2, a partire da versione 2.020, ha Phobos diviso in 2 librerie, druntime.lib e phobos.lib. Ciò consente di utilizzare un runtime comune con Phobos e Tango. Mentre non esiste un piano per unire entrambe le librerie o includere anche Tango con versioni di DMD, questo sarà consentire entrambe le librerie da utilizzare allo stesso tempo senza un livello di compatibilità .
Tangobos è uno sforzo per rendere i due compatibili.
In 2.0, Tango sarà in grado di funzionare come libreria di utilità su un core condiviso. Il nucleo condiviso è già presente, tuttavia il progetto Tango non ha ancora il supporto 2.0.
In 1.0, non ci saranno cambiamenti. Questo perché la specifica 1.0 viene effettivamente congelata per consentire a un bersaglio stabile di svilupparsi contro.