D Язык программирования в реальном мире? [закрыто]

138

Кто-нибудь использует D для реальных приложений? Если да, то для чего вы его используете? Кажется, я не могу найти в сети ничего большого, написанного на D.

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

wvdschel
источник
11
Недавно на форумах dlang было объявлено , что Facebook теперь использует D.
sghill
Нет ничего особенного, потому что D сам по себе довольно плох для создания больших сложных приложений. На первый взгляд это выглядит великолепно, но как только вы попытаетесь сделать что-нибудь коммерческое, все трещины начнут проявляться, и у фанатов очень мало желания создавать правильно структурированное программное обеспечение для коммерческой аудитории (я уверен, что деньги имеют много общего с это, но также лидерство и организация). Одно дело написать утилиту командной строки или алгоритм 5k строк, но совсем другое - создать очень сложное бизнес-приложение, которое включает в себя несколько областей, таких как
Stretto
Конечно, вы можете что-нибудь вместе взломать, но это не коммерческий вопрос. Бизнес не собирается вкладывать свое время / деньги во что-то настолько нестабильное. Нет подходящей IDE, и каждая из тех, что я использовал, почти заставила меня захотеть что-то разбить. Это примерно в 10 раз медленнее, чтобы правильно отлаживать приложения, потому что сообщения об ошибках ужасны, отладчик либо не работает, либо работает против вас, современные функции, которые мы ожидаем, отсутствуют или бедны, а библиотека фубарна, потому что в ней нет логической структуры (вещи перемещаются «произвольно», странные схемы именования, такие как «chomp» и «detabber», и т. д.
Stretto
Думаю, это инь / янь. Некоторые вещи в D удивительны, и ничто не может сравниться (пока) ... но с другой стороны, то, в чем он не работает, тоже довольно сильны. Об этом можно узнать только тогда, когда они действительно тратят время на написание реальных приложений, а не на тривиальные или алгоритмические вещи. Пока организация D не соберет это дерьмо (сколько времени у них уйдет? 10, 20 лет?), Реальный бизнес не будет инвестировать в это. Время - деньги, и ни один бизнес не захочет тратить 10 раз больше времени на отладку приложения, потому что IDE не на высоте.
Stretto
@ Стретто, что ты имеешь в виду? dlang.org/orgs-using-d.html
Баусс

Ответы:

77

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

Еще одна популярная область использования - это веб-службы. Надеюсь, кто-то еще может прокомментировать, кто находится в этом пространстве, но я тоже думаю, что идея состоит в том, что производительность часто действительно имеет значение, поэтому вам нужен скомпилированный язык. Службы часто представляют собой довольно маленькие, автономные процессы, поэтому взаимодействие с большим количеством устаревшего кода C ++ на самом деле не является необходимым или полезным. Таким образом, D может войти в дверь.

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

Но я подозреваю, что до тех пор, пока не наберется огромное количество простых пользователей, крупные корпоративные пользователи не будут иметь большого препятствия.

Baxissimo
источник
10
Я разрабатываю клиент-серверные приложения исключительно на языке D с некоторыми привязками к библиотекам C, но только для графической части клиента для одной из наиболее популярных служб в Нидерландах. Хоть и пришлось переубедить начальника, но он, похоже, ни о чем не жалеет. ;-) - D особенно выделяется здесь, потому что стандартная библиотека обеспечивает реализацию сокетов BSD даже в Windows. Пишите один раз, развертывайте везде, очень приятно.
Джесси Брэндс
@JesseBrands Вы используете фобо или танго?
ответила
88

Я занимаюсь биоинформатикой в ​​D. Для меня ключевым моментом в D является то, что он требует очень взвешенного подхода к компромиссам и признает принцип убывающей отдачи.

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

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

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

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

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

дсимча
источник
2
Что такое объект монитора? Кажется, я не могу найти для этого результатов.
Samaursa
2
Я очень люблю язык D по сравнению с C ++. Более быстрое время компиляции, возможность использовать меньше кода, никаких файлов заголовков и т. Д. Проблема, однако, в том, что здесь не хватает кого-либо, кто бы серьезно работал с графическим интерфейсом. Конечно, я могу использовать GtkD, но попробуйте нарисовать серию причудливых диаграмм. Я вижу многообещающую работу по интеграции с Chromium для графического интерфейса пользователя, но этот проект в значительной степени недокументирован и требует большего количества игроков в этой области. Я надеюсь, что это изменится, но это то, что я вижу здесь в сентябре 2015 года.
Volomike
Монитор объектов - чушь **. Он блокирует весь метод, это действительно расточительно ...
dev1223
@Volomike В последнее время я тоже смотрел на D, и точно так же было сложно сделать с ним инструменты графического интерфейса. В настоящее время у меня нет де-факто решений для создания элегантных инструментов с графическим интерфейсом пользователя с помощью D, и это то, чем я могу заняться в ближайшее время.
dimiguel
32

Я знаю одну небольшую компанию, которая выпустила на рынок почтовый сервер. У них было как минимум 2 человека, которые работали над проектом полный рабочий день.

Кроме того, у крупного игрока в ИТ-бизнесе есть несколько сотрудников, использующих D в более крупных внутренних проектах.

Кроме того, я знаю одну компанию, ищущую венчурное финансирование, несколько (как минимум 4) сотрудников в небольших компаниях, использующих D частично или полностью, и как минимум пару (включая меня), активно ищущих возможности на рынке консалтинга.

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

Небольшой процент моего текущего дохода поступает от Д.

ларсиви
источник
Не могли бы вы назначить организации? Также было бы неплохо узнать об этих проектах побольше.
nbro
28

Я использую D для веб-разработки, и он оказался намного более продуктивным по сравнению с C / C ++. Конечно, существует множество фреймворков на основе ruby ​​/ php / python. Но если вы хотите разработать что-то уникальное, которое также должно быть таким же быстрым, как C, и почти таким же простым, как программирование, как вы это делаете на многих языках сценариев, тогда D - хороший выбор.

Menjaraz
источник
3
Можно спросить? Какой фреймворк или библиотеку вам использовать?
Зеленова
26

Я использую D для оборудования в тестовой среде цикла (HIL). Это для тестирования программного обеспечения в автомобильной сфере. Здесь можно использовать D, потому что как язык системного программирования его можно использовать в программах реального времени (обработчики IRQ в расширении реального времени Linux RTAI-LXRT).

С продолжающимся портированием SWT / JFace я планирую делать больше и работать в D, что я делал бы на Java раньше.

o3o
источник
19

Я использую D в исследовании перевода временного кода компиляции. Расширенные шаблоны в сочетании с кортежами и миксинами значительно упрощают трансляцию кода и позволяют выполнять трансляцию кода во время компиляции без использования отдельного инструмента.

Есть несколько примеров, когда физики использовали D для улучшения своих программ метапрограммированием на D.

видео - Обсуждение на конференции, не удалось найти исходный сайт для использования физиками.

bmeck
источник
Совершенно аналогичный мой проект, также в D dsource.org/projects/scrapple/browser/trunk/dparser/dparse.d
BCS
17

Вся наша сетевая инфраструктура (с высоким трафиком) основана только на D1 и танго. Мы молодая начинающая компания в Берлине: sociantic.com

Marenz
источник
14

Моя текущая рабочая задача - это система для перевода C # на D. Это часть коммерческого проекта по разработке системы программного обеспечения.

БКС
источник
7

Многие игры, выпущенные ABA Games , написаны на D 1.x, хотя я полагаю, что консольные порты пришлось переписать на C ++.

Я написал довольно много прототипов игр на D, но я не уверен, можно ли это назвать «реальным миром», поскольку я написал их для себя и никогда не выпускал ни одного из них.

Брайан Палмер
источник
Не могли бы вы уточнить, какие игры были созданы с использованием D?
nbro
7

Я написал (и все еще поддерживаю и разрабатываю) программное обеспечение для преобразования протоколов тестеров с различных станций тестирования оборудования в стандартизованный выходной формат для отслеживания и тому подобного.

В общей сложности более 5 тысяч строк кода, написанного с помощью D 1.x и библиотеки Phobos.

D очень легко выучить, и, не обращая внимания на некоторые подводные камни (в библиотеке Phobos), программировать очень приятно.

user1158983
источник
6

Я использовал D для своего исследовательского проекта по разработке алгоритма глобальной оптимизации. Я применил его к задаче обучения нейронных сетей. Вам решать, хотите ли вы называть этот мир «реальным миром».

ТомекСови
источник
Доступен ли исходный код или некоторая информация о том, что вы сделали?
nbro
6

Использую D2, второй стандарт версии. Я писал приложения в реальном времени (например, 3D-движок).

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

Определенно мой любимый язык, и я почти уверен, что это будет широко используемый язык.

фаазон
источник
Можно ли увидеть исходный код того, что вы создали с помощью D?
nbro
С тех пор прошло много времени! Сейчас я в основном кодирую на Rust и Haskell, но у меня есть несколько проектов. У меня есть кое-что на моем гитхабе, но я не думаю, что стоит его копать. Этому комментарию 4 года! Я должен взглянуть на текущее состояние всего этого…
phaazon
4

Полагаю, мы можем кое-что прочесть в отсутствии немедленных ответов на этот вопрос, а именно в том, что не многие / ни один из активных ответчиков stackoverflow использует D. Я также был немного удивлен уровнем его рейтинга в листинге TIOBE, который вы ссылка на.

При этом Уолтер Брайт работает над языком уже довольно много лет, и я думаю, что у него есть немало «последователей», которые помнят, как хорошо он работал с компилятором Zortech C ++ еще в 90-х. Отмечу также, что сейчас язык, похоже, склоняется в функциональном направлении.

раздражение
источник
3
На самом деле, сейчас невозможно найти D на этом сайте. Поиск по запросу «d» или «d programming» говорит «нет совпадений», а поиск по тегам для «d» перечисляет страницу, полную тегов, которые содержат «d», но не содержат «d» отдельно. Так что это тоже может иметь к этому какое-то отношение.
Baxissimo
20
найдите [d] в поле поиска, чтобы получить поиск по тегам.
Грегг Линд
2

На официальном сайте D перечислены организации, которые в настоящее время используют D.

http://dlang.org/orgs-using-d.html

The D вики также есть список организаций, но он устарел.

Просто внимательно следите за разговорами DConf .

Почти все люди там работают в какой-то компании, а на работе используют D.

ДеянЛекич
источник
0

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

Я решил перейти на компилируемый язык по одной основной причине - безопасность. Функционально Perl достаточно хорошо работает с набором инструментов, над которым я работаю, но он небезопасен - любой, кто может запустить сценарий, также может читать, копировать и создавать свою собственную модифицированную версию инструмента. (И они это делают.) Я знаю, что есть обходные способы обойти эту проблему (вроде), но, честно говоря, у меня не хватает часов в день, чтобы справиться со всем этим и все же выполнить свою основную работу.

ВернонАмиллер
источник