Общее ядро, называемое druntime, было создано для D2. Низкоуровневая среда выполнения, такая как сборка мусора и многопоточность, ранее была препятствием для взаимодействия Фобоса и Танго в одном проекте. Функциональность более высокого уровня Phobos зависит от времени выполнения Phobos, а также от Tango.
Вышло крупное обновление для Фобоса (фактически вчера (20.04.09)). Это обновление пытается использовать некоторые из новых функций D2 и представляет концепцию диапазонов, которые похожи на итераторы, но с которыми проще работать и которые более мощные. D2 Фобос очень отличается от своего слабого аналога D1.
Tango - лучшая стандартная библиотека для D1. Порт D2 находится в работе и, вероятно, будет развиваться намного быстрее, когда D2 стабилен. Большой вопрос заключается в том, будут ли разработчики Tango обновлять его, чтобы в полной мере использовать возможности D2, или они просто сосредоточатся на том, чтобы заставить его работать с D2 так же, как с D1.
В отличие от двух библиотек, Фобос имеет тенденцию уделять больше внимания созданию простых вещей, синтаксическому сахару, удобству и расширению возможностей того, что можно сделать в стандартной библиотеке. Это нечто среднее между STL и стандартной библиотекой Python, как бы странно это ни звучало. Танго имеет тенденцию быть более похожим на Java. Он больше ориентирован на широкий спектр функций и изящную обработку необычных вариантов использования. Он больше остается в пределах разумного подмножества D (не так много метапрограммирования шаблонов и т. Д., Хотя, возможно, главная особенность D - продвижение метапрограммирования шаблонов в состояние нормального подмножества) и использует более прагматичный подход к разработке API.
Мое собственное предположение (предположение, но оно имеет большой смысл) состоит в том, что Phobos станет аналогом STL, то есть действительно стандартной библиотекой основных функций, а Tango станет утилитарной библиотекой, вроде Boost, поскольку его основные функциональные возможности поглощены в Фобос и / или Druntime.
Наконец, как уже отмечалось, D1 должен быть стабильным, поэтому здесь ничего не меняется.