Ответ 1
Я провел несколько дней, играя с D, чтобы увидеть, как он сравнивается с С++ и java. Он позиционируется как еще один способ достижения тех же вещей, что и С++, но без всякого поведения undefined и с добавлением сборщика мусора, цикла foreach и некоторых других современных тонкостей. Он компилируется в собственный код, поэтому вы получаете доступ ко всем обычным оптимизациям, которые могут возникнуть в этом сценарии.
Весь язык C инкапсулируется как подмножество D в качестве блоков нижнего уровня, из которых построена большая часть языка. Это может помочь с переносимостью, но также не позволяет D развиваться в единую согласованную методологию.
Возможность запуска любой функции C изначально в D открывает область возможного включения системного программирования - операционных систем, драйверов и т.д.
В D. Существуют две общепринятые рамки классов. По умолчанию используется Phobos, который довольно прост и прост в дизайне, что позволяет создавать необходимые вам структуры, но при этом предоставляет небольшие или сложные строительные блоки. Другой Tango, который напоминает библиотеку классов java и содержит гораздо более полную структуру. Существует также проект, позволяющий обеспечить совместимость двух библиотек.
По моему опыту, D - довольно приятный язык для кодирования, имеющий много общего с С# и java, а также доступ к необработанному механизму через C и даже сборку. Основное ограничение, которое я вижу, - отсутствие хорошей поддержки инструментов разработки. Есть несколько IDE и плагинов там, но ничего очень сложного, поэтому вам может быть лучше с текстовым редактором и инструментом построения командной строки тем временем.
Существуют две версии языка: D1 и D2. D1 теперь лучше поддерживается фреймворками и компиляторами, а D2 добавил несколько удобных функций, облегчающих работу и использование языка.
Обновление (июнь 2009 г.): Недавно я снова изучал D и думал, что я должен обратить внимание на DSource, который теперь имеет несколько разных проектов компилятора и дом библиотеки Tango, различные привязки, несколько наборов инструментов GUI и несколько IDE. Некоторые из проектов были оставлены в зачаточном состоянии, но я считаю, что сегодня немало сильных сил и добились хороших результатов. На этом этапе он очень похож на успех D будет определяться движением с открытым исходным кодом гораздо больше, чем его предшественниками.
Обновление (февраль 2012) Хотя я не очень много смотрел на D со времени моего последнего редактирования, я буду замечать, что D2 сейчас, при поддержке большой книги, Язык программирования D. Типично Alexandrescu, он предоставляет множество деталей системы шаблонов, включая ограничения шаблонов, которые делают D гораздо более выразительным и безопасным для текста инструментом, чем текущее состояние С++.
Помимо чтения книги, с 2009 года я не имел никакого отношения к языку D, его инструментам и сообществу, поэтому я не могу комментировать их созревание или рост на сегодняшний день. Я знаю о небольшом кадре профессиональных программистов, которые хотят, чтобы им было разрешено использовать язык на работе, но большинство из нас обычно придерживается С++ и других популярных языков в тех областях, где D должен быть в лучшем состоянии.