2009-05-26 2 views
20

Есть ли у кого-нибудь здесь опыт работы с D programming language?Опыт работы с D-языком программирования

Кажется, что у него много приятных функций, но сможет ли он когда-либо достичь популярности широко распространенных в настоящее время языков, таких как C++, Java или C#?

Так что стоит учиться или это изолированный язык с небольшими перспективами.

+0

Это стоит учиться, потому что она имеет некоторые интересные функции но не стоит инвестировать, чтобы писать приложения в реальном мире, потому что инструменты и библиотека - дерьмо. Это просто не организовано хорошо и слишком много тонких проблем с вещами, которые теряют гораздо больше времени, чем это можно себе представить. Ни один бизнес этого не хочет. Я думаю, что многие могут подсознательно понять, что это может быть червяк. Это похоже на покупку онлайн-магазина для 10k, который выглядит потрясающе и отлично работает ... но когда вы едете на нем в течение месяца, вы начинаете замечать, что все не работает правильно ... тогда, в конце концов, все начинает разваливаться. – Stretto

+0

Я думаю, что лучше всего использовать D для выполнения определенных алгоритмов высокого уровня и инструментов, которые не являются большими или взаимосвязанными, а затем использовать их с других языков. Таким образом, он меньше тратит на D, но может использовать его более мощные функции. К сожалению, это сложно из-за взаимодействия между ним и другими языками (вы закончите писать на C, а не на C++, потому что шаблоны не переводят между ними ... хотя, возможно, можно было бы преодолеть это с некоторыми обертки, которые хорошо работают). – Stretto

ответ

37

Я провел несколько дней, играя с D, чтобы увидеть, как он сравнивается с C++ и java. Он позиционируется как еще один способ достижения тех же вещей, что и C++, но без всего неопределенного поведения и с добавлением сборщика мусора, цикла foreach и некоторых других современных тонкостей. Он компилируется в собственный код, поэтому вы получаете доступ ко всем обычным оптимизациям, которые могут возникнуть в этом сценарии.

Весь язык C инкапсулирован как подмножество D в качестве блоков нижнего уровня, из которых построена большая часть языка. Это может помочь с переносимостью, но также предотвращает превращение D в единую согласованную методологию.

Возможность запускать любую функцию C изначально в D открывает сферу возможности включения систем программирования - операционные системы, драйверы и т.д.

Есть два широко используемых структур классов в D. По умолчанию Phobos , который является довольно спартанским и простым в дизайне, позволяя вам создавать необходимые вам структуры, но предоставляя несколько больших или сложных строительных блоков. Другой - Tango, который напоминает библиотеку классов java и содержит гораздо более полную структуру. Существует также проект, позволяющий обеспечить совместимость двух библиотек.

По моему опыту, D - неплохой язык для кодирования, имеющий много общего с C# и java и позволяющий получать доступ к необработанному механизму через C и даже сборку. Основное ограничение, которое я вижу, - отсутствие хорошей поддержки инструментов разработки. Есть некоторые IDE и плагины там, но ничего очень сложного, поэтому вам может быть лучше с текстовым редактором и инструментом построения командной строки тем временем.

Существует две версии языка D1 и D2. D1 лучше поддерживается фреймворками и компиляторами, и D2 добавил несколько удобных функций, облегчающих работу и использование языка.

Update (июнь 2009): Я недавно смотрел в D раз и думал, что я должен обратить внимание на DSource, которая в настоящее время имеет целый ряд различных проектов компилятора, и является домом библиотеки танго, различные привязки, несколько наборов инструментов GUI и несколько IDE. Некоторые из проектов были оставлены в зачаточном состоянии, но я считаю, что сегодня немало сильных сил и добились хороших результатов. На этом этапе это очень похоже на успех D будет определяться движением с открытым исходным кодом гораздо больше, чем его предшественниками.

Update (февраль 2012) В то время как я не смотрел много на D с момента моего последнего редактирования, отмечу, что D2 находится сейчас, при поддержке большой книги, The D Programming Language. Типичный для Alexandrescu, он предоставляет множество деталей системы шаблонов, включая ограничения шаблонов, которые делают D гораздо более выразительным и безопасным для текста инструментом, чем текущее состояние C++.

Помимо чтения книги, я не имел контакта с языком D, ее инструментами и сообществом с 2009 года, поэтому я не могу комментировать их созревание или рост на сегодняшний день.Я знаю небольшой кадровый состав профессиональных программистов, которые хотят, чтобы им разрешили использовать язык на работе, но большинство из нас, как правило, придерживается C++ и других популярных языков в областях, где D должен быть в лучшем состоянии.

+1

+1. Справедливая оценка нынешнего состояния дел, хотя на фронте инструментальных средств достигнут быстрый прогресс. См. LDC (http://www.dsource.org/projects/ldc) и Descent (плагин Eclipse: http://www.dsource.org/projects/descent). – dsimcha

+2

@dsimcha: То же самое касается комментариев к цепочке инструментов, это быстро улучшается. Если цепочка инструментов была даже на 80% полезной для D, как для C++, я думаю, что C++ быстро станет унаследованным языком. Учитывая время, я думаю, что он доберется туда. – BCS

+0

@BCS: Я согласен, факт, что D имеет даже этот уровень поддержки, который на ранней стадии жизни может быть индикатором его будущего успеха. –

1

При взгляде на вещи, как язык популярности, и т.д. Я нашел Tiobe быть хорошим ресурсом http://www.tiobe.com/content/paperinfo/tpci/index.html

Как вы можете видеть, D находится в верхнем 20.

+2

Я просто посмотрел на него сейчас (февраль 2012 г.) и, к сожалению, сейчас на 40. Тем не менее, это все еще выше Haskell, Go, Eiffel, Clojure, Scala и других, много говоривших о языках. Согласно Tiobe, одним из первых и будущих языков является LOGO !! – Justin

+0

Это только до 39 :( – Demi

+0

Август 2014 года, снятый до 28. Интересно, почему сборка настолько популярна. – simonzack

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