D Язык программирования в реальном мире?[закрыто]
-
09-06-2019 - |
Вопрос
Кто-нибудь использует D для реальных приложений?Если да, то для чего вы его используете?Кажется, я не могу найти в Интернете ничего крупного, написанного на D.
Несмотря на отсутствие известных крупных пользователей, D кажется мне очень многообещающим языком, и, по мнению ТИОБЕ, это довольно популярно.
Решение
Я использую D для своей исследовательской работы в области компьютерной графики.Я и другие публиковали статьи в наших областях, основанные на работе, проделанной с использованием Д.Я думаю, что он определенно готов к использованию в небольших и средних исследовательских проектах, где производительность имеет значение.Это хорошо подходит для исследовательской работы, потому что часто вы все равно начинаете с нуля, поэтому у вас нет большого количества устаревшего кода, с которым нужно беспокоиться об интеграции.
Еще одной популярной областью использования являются веб-сервисы.Надеюсь, кто-то еще сможет прокомментировать, кто находится в этом месте, но я думаю, что идея в том, что производительность часто действительно имеет значение, поэтому вам нужен язык, скомпилированный в железо.Службы часто представляют собой довольно небольшие автономные процессы, поэтому взаимодействие с большими объемами устаревшего кода C++ не является необходимым или полезным.Таким образом, D может войти в дверь.
Я думаю, что D продолжит таким образом привлекать последователей на низовом уровне - в небольших проектах, которые по какой-либо причине могут позволить себе отказаться от наследия C++, чтобы получить язык программирования, который гораздо приятнее в использовании и, возможно, более продуктивен.
Но пока не появится огромное количество простых пользователей, я подозреваю, что крупных корпоративных пользователей будет не так много.
Другие советы
Я занимаюсь биоинформатикой в Д.Для меня главное в D то, что он использует очень взвешенный подход к компромиссам и признает принцип убывающей отдачи.
В отличие от C++, который строго придерживается принципа нулевых затрат, D допускает функции, которые могут иметь небольшие затраты на производительность и пространство, если они делают язык намного более удобным в использовании.К ним относятся сбор мусора, объект монитора для каждого класса, информация о типе среды выполнения и т. д.
В отличие от Ruby, Python, PHP и т. д., D пытается быть почти таким же быстрым, как C, даже если он менее динамичен и немного сложнее программировать, чем языки сценариев.
В результате получается язык, который является оптимальным, когда время разработки и время выполнения имеют примерно одинаковое значение, что в моей области происходит в большинстве случаев.
Аналогичным образом, D придерживается очень взвешенного подхода к вопросам безопасности и безопасности.гибкость.Предполагается, что программисты в основном знают, что делают, но допускают ошибки.
В отличие от C и C++, он предполагает, что вы не хотите использовать указатели, небезопасное приведение типов, ручное управление памятью и т. д. повсюду в вашем коде, поскольку они подвержены ошибкам, и предполагает, что вы не хотите просеивать множество Сообщения об ошибках шаблона -page, когда вы облажаетесь, просто используя массивы с изменяемым размером.
В отличие от Java и других языков «связывания и дисциплины», D предполагает, что иногда указатели, небезопасное приведение типов, ручное управление памятью и т. д.являются неизбежным злом и предполагает, что вы достаточно умны, чтобы обращаться с реальными шаблонами, перегрузкой операторов и т. д.без написания запутанного кода.Также предполагается, что вы можете ошибиться и получить доступ к массиву за пределами его границ, но программист лучше всех знает, какой компромисс следует сделать между безопасностью и скоростью в любой конкретной ситуации.Таким образом, проверка границ массивов просто определяется переключателем компилятора.
Я знаю одну небольшую компанию, которая выпустила на рынок продукт для почтовых серверов.У них было как минимум 2 человека, работавших полный рабочий день над проектом.
Кроме того, у крупного игрока в ИТ-бизнесе несколько сотрудников используют D в более крупных внутренних проектах.
Кроме того, я знаю одну компанию, ищущую венчурное финансирование, несколько (минимум 4) сотрудников небольших компаний, использующих D частично или полностью, и, по крайней мере, пару (включая меня), активно ищущих возможности на рынке консалтинга.
Я, вероятно, упустил некоторые из них, о которых мне следовало бы знать, и, возможно, некоторые, о которых я не слышал, но они все еще существуют, поскольку вышеизложенное более или менее относится к тем, кого я сам знаю через сообщество.
Небольшой процент моего текущего дохода поступает от Д.
Я использую D для веб-разработки, и он оказался намного более продуктивным по сравнению с C/C++.Конечно, существует множество фреймворков, основанных на Ruby/php/python.Но если вы хотите разработать что-то уникальное, которое должно быть таким же быстрым, как C, и почти таким же простым в программировании, как и многие скриптовые языки, тогда D — хороший выбор.
Я использую D для тестовой среды оборудования в цикле (HIL).Это для тестов программного обеспечения в автомобильной сфере.Здесь можно использовать D, поскольку в качестве языка системного программирования его можно использовать в программах реального времени (обработчики IRQ в расширении реального времени Linux RTAI-LXRT).
С продолжающимся портированием SWT/JFace я планирую делать больше и работать на D, что раньше я делал на Java.
Фейсбук объявили, что на сегодняшний день они используют его в производстве.
Я использую D в исследованиях перевода кода времени компиляции.Расширенные шаблоны в сочетании с кортежами и миксинами значительно упрощают перевод кода и позволяют выполнять перевод кода во время компиляции без необходимости использования отдельного инструмента.
Есть несколько примеров того, как физики используют D для улучшения своих программ с помощью метапрограммирования на D.
видео - Доклад конференции, не удалось найти исходный сайт для использования физиками.
Вся наша сетевая инфраструктура (с высоким трафиком) основана только на D1 и Tango.Мы молодая стартап-компания в Берлине: социомантик.com
Моя текущая рабочая задача — система перевода C# в D.Это часть коммерческого проекта по разработке системы программного обеспечения.
Ну, я написал пару исследовательских работ на языке D, как и другие.
http://www.digitalmars.com/webnews/newsgroups.php?art_group=digitalmars.D.announce&article_id=9466.
Кажется, что Лечебные игры имеет большую кодовую базу D2 для своих игр (см. Использование D вместе с игровым движком Ману Эванс – DConf 2013).
Это большая компания, и знать, что большая компания использует D, очень хорошо.
Многие игры, выпущенные Игры АБА написаны на D 1.x, хотя я полагаю, что консольные порты пришлось переписать на C++.
Я написал немало прототипов игр на D, но не уверен, можно ли это квалифицировать как «реальный мир», поскольку я писал их для собственной выгоды и никогда не выпускал ни одного из них.
Я написал (и до сих пор поддерживаю и разрабатываю) программное обеспечение для преобразования протоколов тестеров с различных станций тестирования оборудования в стандартизированный выходной формат для отслеживания и тому подобного.
Всего более 5 тысяч строк кода, написанного с использованием D 1.x и библиотеки Phobos.
D очень легко освоить, и, несмотря на некоторые подводные камни (в библиотеке Фобоса), программировать - настоящее удовольствие.
Я использовал D для своего исследовательского проекта по разработке алгоритма глобальной оптимизации.Я применил это к задаче обучения нейронных сетей.Вам решать, хотите ли вы назвать этот «реальный мир».
Я написал сценарий-оболочку, который собирает DGCC в OS X.
http://github.com/davecheney/make-gdc-apple/tree/master
Мне бы хотелось услышать мнение других программистов DMD.
Я использую D2, второй стандарт версии.Я писал приложения реального времени (например, 3D-движок).
Язык с каждым днем становится все более мощным.D очень прагматичен, и все встроенные функции, особенно парадигма метапрограммирования, на мой взгляд, значительно превосходят C++.Синтаксис более понятен, вы можете использовать силу функциональное программирование с помощью таких функций, как фильтр или уменьшать, и одна из наиболее важных особенностей:вы можете использовать все библиотеки C.
Определенно мой любимый язык, и я почти уверен, что он будет широко использоваться.
Я полагаю, что мы можем кое-что объяснить отсутствием немедленных ответов на этот вопрос, а именно то, что не многие/никто из активных респондентов stackoverflow используют D.Я также был немного удивлен уровнем его рейтинга в списке TIOBE, на который вы ссылаетесь.
При этом Уолтер Брайт работает над этим языком уже довольно много лет, и я думаю, что у него немало «последователей», которые помнят, какую хорошую работу он проделал с компилятором Zortech C++ еще в 90-х.Я также отмечу, что сейчас язык, судя по всему, склоняется к функциональному направлению.
Я начинаю проект по переписыванию некоторых наших внутренних инструментов с Perl на D.Я выбрал D, потому что меня очень волнует философия дизайна этого языка.Я занимаюсь программированием в течение длительного времени и использовал множество языков, от ассемблеров до языков высокого уровня (в основном C) и языков сценариев (в основном Perl), а D — первый язык, который я с энтузиазмом изучал за многие годы. .
Я решил перейти на компилируемый язык по одной главной причине — безопасность.Функционально Perl довольно хорошо работает с набором инструментов, над которым я работаю, но он небезопасен — любой, кто может запустить сценарий, может также читать, копировать и создавать свою собственную модифицированную версию инструмента.(И они это делают.) Я знаю, что существуют обходные методы решения этой проблемы (вроде как), но, честно говоря, у меня недостаточно часов в день, чтобы справиться со всем этим и при этом выполнить свою основную работу.
Я запустил рендеринг с трассировкой лучей в D с помощью ldmd2.