D Язык программирования в реальном мире?
Кто-нибудь там использует D для приложений реального мира? Если да, для чего вы его используете? Я не могу найти ничего хорошего в Интернете, написанном в D.
Несмотря на отсутствие известных крупных пользователей, D кажется мне очень перспективным языком, и, согласно TIOBE, он довольно популярен.
Ответы
Ответ 1
Я использую D для своих исследовательских работ в области компьютерной графики. У меня и других были бумаги, опубликованные в наших полях, основанные на работе, выполненной с использованием D. Я думаю, что он определенно готов к использованию в небольших и средних исследовательских проектах, в которых важна производительность. Это хорошо подходит для исследовательской работы, потому что часто вы начинаете с нуля в любом случае, поэтому у вас не так много устаревшего кода, чтобы беспокоиться об интеграции с.
Еще одна популярная область для использования - это веб-службы. Надеюсь, кто-то еще может прокомментировать, кто в этом пространстве, но там тоже я думаю, идея состоит в том, что производительность часто действительно имеет значение, поэтому вы хотите, чтобы язык скомпилировался. Службы часто являются довольно маленькими, автономными процессами, поэтому взаимодействие с большим количеством устаревшего кода на С++ не является действительно необходимым или полезным. Таким образом, D может попасть в дверь.
Я думаю, что D продолжит набирать нисходящие последователи таким образом - на более мелкие проекты, которые по какой-то причине могут позволить себе урезать наследие С++, чтобы получить язык программирования, который гораздо приятнее в использовании, и, возможно, больше также продуктивны.
Но до тех пор, пока не появится огромное количество низовых пользователей, я не буду подозревать крупных корпоративных пользователей.
Ответ 2
Я работаю с биоинформатикой в D. Для меня ключевая вещь в D заключается в том, что она требует очень рационального подхода к компромиссам и признает принцип уменьшения отдачи.
В отличие от С++, который строго придерживается принципа "нулевой надбавки", D позволяет использовать функции, которые могут иметь небольшую стоимость/объемную стоимость, если они делают язык более удобным для использования. К ним относятся сбор мусора, объект монитора для каждого класса, информация о времени выполнения и т.д.
В отличие от Ruby, Python, PHP и т.д. D пытается быть почти таким же быстрым, как C, даже если он менее динамичен и немного сложнее программировать, чем языки сценариев.
Результатом является язык, который является оптимальным, когда время разработки и время выполнения имеют значение примерно одинаково, что в моей области больше всего времени.
Аналогично, D использует подход с высокой степенью точности и гибкостью. Предполагается, что программисты в основном знают, что делают, но делают ошибки.
В отличие от C и С++, предполагается, что вы не хотите использовать указатели, небезопасные касты, ручное управление памятью и т.д. во всем своем коде, поскольку они подвержены ошибкам и предполагает, что вы не хотите просеивайте многостраничные сообщения об ошибках шаблона, когда вы испортите только для использования масштабируемых массивов.
В отличие от Java и других языков связи и дисциплины, D предполагает, что иногда указатели, небезопасные приведения, ручное управление памятью и т.д. являются необходимым злом и предполагают, что вы достаточно умны для обработки реальных шаблонов, перегрузки операторов и т.д. без написания обфускации кода. Он также предполагает, что вы можете испортить и получить доступ к массиву за пределами границ, но программист лучше знает, какой компромисс должен быть сделан между безопасностью и скоростью в любой конкретной ситуации. Поэтому, проверяется ли ограничение границ массива, просто определяется компилятором.
Ответ 3
Я знаю одну маленькую компанию, которая отправила на сервер продукт почтового сервера. У них было по крайней мере 2 человека, которые работали полный рабочий день на проекте.
Кроме того, у крупного игрока в ИТ-бизнесе есть несколько сотрудников, использующих D в крупных внутренних проектах.
Далее я знаю одну компанию, ищущую венчурное финансирование, несколько (как минимум 4) сотрудников в небольших компаниях, использующих D как часть, так и полный рабочий день, и по крайней мере пара (включая меня) активно ищет возможности на рынке консалтинга.
Я, вероятно, забыл о некоторых, о которых я должен был знать, и, вероятно, о некоторых, о которых я не слышал, но это все еще существует, поскольку выше это более или менее те, которые я знаю сам через сообщество.
Небольшой процент моего текущего дохода исходит от D.
Ответ 4
Я использую D для веб-разработки, и он оказался намного более продуктивным по сравнению с C/С++.
Конечно, существует множество фреймворков на основе ruby /php/python.
Но когда вы хотите создать нечто уникальное, которое также должно быть таким же быстрым, как C, и почти так же легко, как и программировать, как и во многих языках script, тогда D является хорошим выбором.
Ответ 5
Я использую D для аппаратного обеспечения в тестовой среде цикла (HIL). Это для тестирования программного обеспечения в автомобильной сфере. D можно использовать здесь, поскольку в качестве языка системного программирования его можно использовать в программах реального времени (обработчики IRQ в режиме реального времени RTAI-LXRT).
С текущим портом SWT/JFace я планирую сделать больше и работать в D, который раньше был бы на Java.
Ответ 6
Facebook объявили, что используют его в производстве на сегодняшний день.
Ответ 7
Я использую D в исследовании перевода кода времени компиляции. Расширенные шаблоны в сочетании с кортежами и mixins значительно упрощают перевод кода и позволяют выполнять перевод кода во время компиляции без необходимости использования отдельного инструмента.
Есть несколько примеров, когда физики используют D для улучшения своих программ с мета-программированием в D.
video - Обсуждение конференции не могло найти источник использования физика.
Ответ 8
Вся наша (высокоскоростная) сетевая инфраструктура основана только на D1 и танго. Мы - молодая стартап-компания в Берлине: sociomantic.com
Ответ 9
Моя текущая рабочая задача - это система для перевода С# на D. Это как часть проекта прибыли для разработки программной системы.
Ответ 10
Хорошо, я написал несколько исследовательских работ в D, как и другие.
http://www.digitalmars.com/pnews/read.php?server=news.digitalmars.com&group=digitalmars.D.announce&artnum=13337
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=9466.
Ответ 11
Многие игры, выпущенные ABA Games, написаны в D 1.x, хотя я представляю себе консольные порты должны были быть перезаписаны на С++.
Я написал довольно много прототипов игр в D, но я не уверен, что это соответствует как "реальный мир", так как я написал их для себя и никогда не выпускал ни одного из них.
Ответ 12
Я написал (и я все еще поддерживаю и разрабатываю) программное обеспечение для преобразования протоколов тестеров с различных аппаратных тестовых станций в стандартизованный формат вывода для отслеживания и т.д.
Все вместе над 5k строками кода, написанными с D 1.x и библиотекой Phobos.
D так легко учиться и не обращать внимания на некоторые подводные камни (в библиотеке Фобоса) - настоящая радость для программы.
Ответ 13
Я использовал D для своего исследовательского проекта по разработке глобального алгоритма оптимизации. Я применил его к проблеме обучения нейронных сетей. Это зависит от вас, хотите ли вы назвать этот "реальный мир".
Ответ 14
Я написал обертку script, которая строит DGCC на OS X
http://github.com/davecheney/make-gdc-apple/tree/master
Мне бы хотелось услышать от других программистов DMD там
Ответ 15
Я использую D2, второй стандарт версии. Я писал приложения реального времени (например, 3D-движок).
Язык становится все более и более мощным каждый день. D очень прагматичен, и все встроенные функции, особенно парадигма метапрограммирования, на мой взгляд, намного превосходят С++. Синтаксис более ясен, вы можете использовать силу функционального программирования с помощью таких функций, как фильтр или сокращение, и одна из наиболее важных функций: вы можете использовать все C libs.
Определенно мой любимый язык, и я уверен, что это будет распространенный язык.
Ответ 16
Кажется, что Remedy Games имеет большую кодовую базу D2 для своих игр (см. Использование D рядом с игровым движком от Manu Evans - DConf 2013).
Они - большая компания, зная, что большая компания использует D, очень хороша.
Ответ 17
Я полагаю, что мы можем что-то прочесть в отсутствие немедленных ответов на этот вопрос, и это значит, что не многие/ни один из активных пользователей stackoverflow не используют D. Я также немного удивился уровню его рейтинга в TIOBE список, на который вы ссылаетесь.
Сказав это, Уолтер Брайт работает над языком уже довольно много лет, и я думаю, что у него есть целый ряд "последователей", которые помнят, какую хорошую работу он сделал с компилятором Zortech С++ в 90-х годов. Я также отмечаю, что теперь язык склоняется к функциональному направлению.
Ответ 18
Официальный сайт D перечисляет организации, которые в настоящее время используют D.
http://dlang.org/orgs-using-d.html
D wiki также предоставляет список организаций, но устарел.
Просто внимательно посмотрите DConf.
Практически все люди работают в какой-то компании, и они используют D на работе.
Ответ 19
Я начинаю проект, чтобы переписать некоторые из наших внутренних инструментов с Perl на D. Я выбрал D, потому что я очень взволнован философией дизайна языка. Я долго программировал и использовал множество языков, от ассемблеров до высокоуровневых (в основном, C) языков для написания сценариев (в основном Perl), а D - это первый язык, на котором я много лет восхищался обучением.
Я решил перейти на скомпилированный язык по одной основной причине - безопасности. Функционально Perl отлично работает для инструментария, над которым я работаю, но он небезопасен - любой, кто может запускать script, также может читать, копировать и создавать свою собственную модифицированную версию инструмента. (И они это делают.) Я знаю, что есть обходные методы, чтобы обойти эту проблему (вроде), но, честно говоря, мне не хватает часов в день, чтобы все это справиться и все еще выполняю мою основную работу.
Ответ 20
Я запустил рендеринга с трассировкой лучей в D с помощью ldmd2.
http://palaes.rudanium.org/SubSpace/render.php