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


138

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

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


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 ++, чтобы получить язык программирования, который гораздо приятнее использовать и, возможно, более продуктивен.

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


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 - хороший выбор.


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

26

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

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



19

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

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

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


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

17

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


14

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




7

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

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


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

7

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

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

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


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


Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.