Форум программистов, компьютерный форум, киберфорум
D (DLang)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6195 / 2896 / 1043
Регистрация: 01.06.2021
Сообщений: 10,627

Почему язык D не стал таким популярным как С++?

26.07.2024, 23:06. Показов 2127. Ответов 13
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Почему язык D не стал таким популярным как С++?
Он такой же быстрый как С++, и в тоже время лишен многих недостатков, которые есть в С++.
Язык поддерживает сборку мусора, но также оставляет доступным ручное управление память. В нем много сахара. И тем не менее, это не какой-то там C#, а очень хороший язык, который по производительности ничем не хуже языков С++/С.
В его разработке участвовал "царь С++ ООП" Андрей Александреску. Уже данный факт говорит о том, что этот язык не очередное поделие.
А теперь посмотрите, с какой частотой появляются темы в разделе D. Такое чувство, что никто на нем не пишет.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
26.07.2024, 23:06
Ответы с готовыми решениями:

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

Почему Лисп не стал популярным языком программирования?
Спасибо большое за помощь! Как итог мне надо было написать макрос чтения, который из конструкции вида # делал список (2 3 5 7 11), при...

Firefox 3.5 стал самым популярным в мире
Браузер Firefox 3.5 от Mozilla впервые стал самым популярным в мире – он обошел по доле на мировом рынке Internet Explorer 7 от компании...

13
19500 / 10105 / 2461
Регистрация: 30.01.2014
Сообщений: 17,816
26.07.2024, 23:26
Royal_X, если кратко, то существующая уже инфраструктура и решения для С\С++ имеют громный импульс. Какой бы ни был хороший язык, в первую очередь его применимость определяется не в вакууме, а в контексте уже существующих технологий. Поэтому ни D, ни Rust просто так не смогут, только на основании, что они такие хорошие, вытеснить С++. Нужны очень большие денежные вливания в создание ничем не уступающих аналогов существующих технических средств во всех сферах, где применяется C++, чтобы полностью его вытеснить. А также потребуется время на обучение достаточного числа программистов, чтобы создать новые условия на рынке.

Microsoft с их C# потребовалось около 10 лет и огромный бюджет, чтобы вытянуть нишу десктопа из под С++, и это при условии фактической монополии на всю десктопную платформу для x86.
У создателей D и близко нет подобных ресурсов.
2
Эксперт функциональных языков программированияЭксперт С++
 Аватар для Royal_X
6195 / 2896 / 1043
Регистрация: 01.06.2021
Сообщений: 10,627
26.07.2024, 23:33  [ТС]
DrOffset, Google вместе с JetBrains тоже активно пропагандируют свой Kotlin.
0
Модератор
Эксперт Java
 Аватар для alecss131
2856 / 1363 / 406
Регистрация: 11.08.2017
Сообщений: 4,352
Записей в блоге: 2
27.07.2024, 00:00
Цитата Сообщение от Royal_X Посмотреть сообщение
Google вместе с JetBrains тоже активно пропагандируют свой Kotlin
Но это под андроидом. На десктопе не особо популярно, про веб не знаю. Хотя и на андроиде думаю джаву полностью не вытеснить.
На маке основные языки Objective-C и Swift. Там С++ и прочие похожие языки тоже не особо популярны, как минимум потому что доступ к системным апи (аналог winapi) есть только из указанных двух языков. Теперь они пытаются вытеснить Objective-C новым Swift, но вытесняемый язык живее всех живых.
Swift очень похож на Kotlin и вышел позже, но для меня куда приятнее чем Kotlin.
Сейчас кстати Swift тоже продвигается на все платформы и язык с открытым исходным кодом. По сути тоже некая замена С++ и прочему похожему. Он тоже компилируемый, у него статическая (неявная и строгая типизация), есть рефлесия, нету сборщика мусора (как и ручного управления памятью, вместо него arc). Язык сделан максимально безопасным, поэтому писать низкоуровневый код не выйдет, но зато хорошо совместим с чистым Си и последнее время появилась и развивается прямая совместимость с С++. Пример совместимости с Си, можно расширять типы (структуры) из Си (объявленные в Си коде), добавляя в них методы.
Активность в Rust на нашем форуме тоже никакая. Хотя у него развитие все же поболее, например своя IDE от Jetbrains, а не плагин к идее как у D.
Про такой же быстрый и лишен недостатков можно сказать и про другие языки.
Еще думаю имеет место что в универах преподают С/С++.

Добавлено через 2 минуты
Мне как пользователю важно наличие библиотек/фреймворков для языка, наличие хорошего комьюнити, где помогут решить вопросы. А так же наличие в достаточном объеме актуального и понятного обучающего материала.

Добавлено через 4 минуты
Кстати, рефлексия довольно полезная вещь. Иногда в С++ ее так не хватает.
В Swift она есть, ее можно отключить (аж 3 варианта флагов для компилятора) и куда безопаснее чем в той же Java, так как не позволяет ничего изменять, а только смотреть. Но и от такого наличия много пользы. Первое что приходит в голову, получение строки из имени перечисления, недавно была такая тема в Qt разделе.
В D есть рефлексия?
2
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
27.07.2024, 09:18
Цитата Сообщение от alecss131 Посмотреть сообщение
В D есть рефлексия?
Нет.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
30.07.2024, 14:37
Цитата Сообщение от SmallEvil Посмотреть сообщение
Нет.
Yes, D has reflection, but no, it is not like Java.

D's reflection comes in the form of compile time building blocks, rather than runtime methods. Of course, you can create the runtime methods yourself, but it won't just work out of the box with everything.

I actually just wrote a thing today that reflection loops over a method to show its properties and let you edit it: https://twitter.com/adamdruppe... 2516179968 It is not done yet but I'll link so you can see some of it in action: https://github.com/adamdruppe/... 44477R6587

Anyway, the way I do it is to create methods out of simple loops using the reflection info. The language provides two facilities, __traits, and the is expression to do this:

https://dlang.org/spec/traits.html

https://dlang.org/spec/express... Expression

And the standard library wraps and extends with the std.traits module

http://dpldocs.info/experiment... raits.html

(or if you prefer the official website of basically the same docs, just imo harder to read/navigate: https://dlang.org/phobos/std_traits.html )

You can combine this with other code generation techniques like template mixins and traditional things like interfaces and constructors to create the runtime stuff.
-- https://stackoverflow.com/a/53462588
2
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
30.07.2024, 20:21
Цитата Сообщение от korvin_ Посмотреть сообщение
Yes, D has reflection,
Рефлексия на этапе компиляции ничего не значит.
Это даже не рефлексия для статически типизированных ЯП.

Добавлено через 1 минуту
korvin_, и подымаются руки для такого троллинга, я в шоке.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
30.07.2024, 20:32
Цитата Сообщение от SmallEvil Посмотреть сообщение
Рефлексия на этапе компиляции ничего не значит.
Кому ничего не значит?

Цитата Сообщение от SmallEvil Посмотреть сообщение
Это даже не рефлексия для статичиски типизированных ЯП.
А что?

Цитата Сообщение от SmallEvil Посмотреть сообщение
и подымаются руки для такого троллинга, я в шоке.
Какого троллинга?

Добавлено через 4 минуты
SmallEvil, документация D тоже троллит?

Traits are extensions to the language to enable programs, at compile time, to get at information internal to the compiler. This is also known as compile time reflection. It is done as a special, easily extended syntax (similar to Pragmas) so that new capabilities can be added as required.
https://dlang.org/spec/traits.html

Или документация Scala троллит?

Scala reflection enables a form of metaprogramming which makes it possible for programs to modify themselves at compile time. This compile-time reflection is realized in the form of macros, which provide the ability to execute methods that manipulate abstract syntax trees at compile-time.
https://docs.scala-lang.org/ov... rview.html

Добавлено через 1 минуту
Или GCC троллит? https://gcc.gnu.org/projects/cxx-reflection/
1
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
30.07.2024, 22:15
Это вы не понимаете что такое рефлексия и чем она ценна.
Цитируйте хот бога.
Компиле тайм рефлексией никого не удивишь.

Цитата Сообщение от korvin_ Посмотреть сообщение
Или документация Scala троллит?
Да троллит. Это реклама. Главное что бы было слово "рефлексия", для масс сойдет.
А то что это пшик, ну так это знающим понятно.
А вы просто пересказываете очевидные никому не нужные вещи.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
30.07.2024, 23:07
Цитата Сообщение от SmallEvil Посмотреть сообщение
Это вы не понимаете что такое рефлексия и чем она ценна.
Голословное заявление.

Цитата Сообщение от SmallEvil Посмотреть сообщение
Цитируйте хот бога.
Действительно, чтение не в почёте?

Цитата Сообщение от SmallEvil Посмотреть сообщение
Компиле тайм рефлексией никого не удивишь.
Цели удивить не было.

Цитата Сообщение от SmallEvil Посмотреть сообщение
Да троллит. Это реклама.
С чего такой вывод?

Цитата Сообщение от SmallEvil Посмотреть сообщение
Главное что бы было слово "рефлексия", для масс сойдет.
Главное -- умение читать больше одного слова.

Цитата Сообщение от SmallEvil Посмотреть сообщение
А вы просто пересказываете очевидные никому не нужные вещи.
Я поправляю некорректные утверждения, вводящие в заблуждение.
0
 Аватар для SmallEvil
4086 / 2975 / 813
Регистрация: 29.06.2020
Сообщений: 11,000
31.07.2024, 07:39
Цитата Сообщение от korvin_ Посмотреть сообщение
Я поправляю некорректные утверждения, вводящие в заблуждение.
Ваша голословная цитата из поста №6, так же вводит людей в заблуждения.
У ЯП D нет полноценной рефлексии.
Есть какая-то compile-time. На этом всё.
0
фрилансер
 Аватар для Алексей1153
6455 / 5657 / 1129
Регистрация: 11.10.2019
Сообщений: 15,060
31.07.2024, 08:10
SmallEvil, в C++, например, рефлексия только в компайлтайме и нужна. Её потихоньку завозят, но очень потихоньку В рантайме то она нафиг сдалась?
0
Модератор
Эксперт Java
 Аватар для alecss131
2856 / 1363 / 406
Регистрация: 11.08.2017
Сообщений: 4,352
Записей в блоге: 2
31.07.2024, 11:02
Алексей1153, соглашусь
SmallEvil, Тем более что изменение объектов в рантайме крайне небезопасная вещь.
Например в Swift сознательно не стали делать такое небезопасное поведение рефлексии.
0
Эксперт функциональных языков программированияЭксперт Java
 Аватар для korvin_
4575 / 2774 / 491
Регистрация: 28.04.2012
Сообщений: 8,779
31.07.2024, 12:31
Цитата Сообщение от SmallEvil Посмотреть сообщение
Ваша голословная цитата из поста №6, так же вводит людей в заблуждения.
В чём её голословность и в какое заблуждение она вводит?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
31.07.2024, 12:31
Помогаю со студенческими работами здесь

Английский язык. Почему название группы иногда пишется таким образом: Beatles, The?
Почему название группы иногда пишется таким образом: "Beatles, The"? - артикль после остальной части и ЧЕРЕЗ запятую?

Ноут стал таким как я его купила
Посоветуйте пожалуйста!:cry: У меня есть такая ситуация ... на ноуте работала и вдруг выскочила табличка о какой-то внутренней...

Изменить первый список, чтобы он стал таким, как второй
всем привет Есть такая задача: на вход даны двусвязных два списка, требуется изменить первый список таким образом, чтобы он стал...

Немецкий язык. Как перевести "таким - каким"?
Вообще говоря мне потребовалось перевести одно предложение в котором встретилось сочетание таким - каким. Перевёл. А вот верно ли?...

в время установки я выбрал русский язык, но после установки он стал английская...Как поправить эту?
в время установки я выбрал русский язык, но после установки он стал английская...Как поправить эту?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Логарифм записывается как: (x-2)log(x^2+2) - означает логарифм (x^2+2) по основанию (x-2). Унарный минус обозначается как ! */ #include <iostream> #include <stack> #include <cctype>. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru