2009-04-21 2 views

ответ

13

Общее ядро, называемое druntime, было построено для D2. Низкоуровневое время выполнения, например сбор мусора и потоки, ранее было препятствием для взаимодействия Фобоса и Танго в том же проекте. Более высокая функциональность Phobos зависела от времени выполнения Phobos, а также для Tango.

Основное обновление для Фобоса было выпущено (только вчера (4/20/09)). Это обновление пытается использовать некоторые из новых функций D2 и вводит концепцию диапазонов, которые похожи на итераторы, но более удобные и эффективные. D2 Phobos сильно отличается от своего слабого D1-аналога.

Tango на сегодняшний день является лучшей стандартной библиотекой для D1. Порт D2 находится в процессе и, скорее всего, будет прогрессировать намного быстрее, когда D2 будет стабильным. Большой вопрос: смогут ли разработчики Tango обновить его, чтобы в полной мере использовать возможности D2, или просто сосредоточиться на том, чтобы он работал с D2 так же, как с D1.

В отличие от двух библиотек, Phobos имеет тенденцию сосредотачиваться больше на простых простых вещах, синтаксическом сахаре, удобстве и нажатии на конверт того, что можно сделать в стандартной библиотеке. Это нечто среднее между STL и стандартной библиотекой Python, как это ни странно. Tango имеет тенденцию иметь больше похожего на Java чувства. Это больше ориентируется на широту возможностей и грамотно обрабатывает необычные варианты использования. Он остается в пределах разумного подмножества D (не так много метапрограммирования шаблонов и т. Д., Хотя, возможно, главной особенностью D является продвижение шаблона метапрограммирования до нормального состояния подмножества) и более прагматичный подход к дизайну API.

Моя собственная догадка (спекуляция, но это имеет большой смысл) заключается в том, что Phobos станет аналогичным STL, то есть по-настоящему стандартной библиотеке основных функций, а Tango станет библиотекой утилиты, вроде Boost, как больше его основной функциональности поглощается в Фобос и/или время ожидания.

Наконец, как отмечали другие, D1 должен быть стабильным, поэтому здесь ничего не меняется.

6

Похоже, в октябре они были moving toward compatibility, но я не знаю, что случилось с тех пор ...

Edit:

Я также нашел this, который, кажется, указывает нет никаких планов на фактически слияния:

Не будет изменений в ситуации для D1. Однако D2, начиная с версии 2.020, разделил Фобос на 2 библиотеки, druntime.lib и phobos.lib. Это позволит использовать обычную рабочую среду как с обоими фобиями , так и с танго. Хотя нет никакого плана для объединить обе библиотеки или даже включить Tango с релизами DMD, это будет , позволяющее использовать обе библиотеки в без совместимости .

4

В 2.0 Tango сможет функционировать как служебная библиотека поверх общего ядра. Совместное ядро ​​уже установлено, однако проект Tango еще не имеет поддержки 2.0.

В 1.0, никаких изменений не будет. Это связано с тем, что спецификация 1.0 эффективно замораживается, чтобы создать стабильную цель против.

Смежные вопросы