| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Другие языки > [D] Язык программирования D |
| Автор: $tatic 31.7.2008, 18:33 |
| Кто чего хорошего может об этом перспективном языке сказать? |
| Автор: kemiisto 31.7.2008, 19:13 | ||
| Очередная попытка "облагородить" C++. Cборщик мусора, модули, отказ от препроцессора, множественного наследования... Вряд ли он перспективный. Из "облагороженных" потомков С++ Вам должны быть прекрасно известны два языка, за которыми стоят крупные корпорации и не менее крупные сообщества разработчиков. В D особой нужды никто не испытывает. P.S. А пишут то о нём конечно красиво!
|
| Автор: bars80080 31.7.2008, 19:50 |
| kemiisto, ты знаешь, что эсперанто не допускает дублирования букв? |
| Автор: $tatic 31.7.2008, 19:51 |
| kemiisto, имеются в виду Java и C#? Если так, то у них тоже можно найти ряд недостатков, из-за которых D выглядит лучше. |
| Автор: $tatic 31.7.2008, 22:38 |
Применительно к разработке 3D-игр (мне это ближе):
В общем D призван заменить C++ в области высокопроизводительных и низкоуровневых приложений, а Java и .NET служат для других задач и в своих нишах C++ неплохо заменяют. |
| Автор: kemiisto 31.7.2008, 23:00 | ||||||||
Не думаю. Тогда б не было XNA Framework и XNA Game Studio.
В .NET есть! Игры тоже существуют только под Windows. За редким исключением.
Опять же, существование XNA говорит о том, что проигрыш в производительности не так велик. ...
При этом D никогда уже не сможет занять ни первую, ни вторую нишу. Это ж ясно как день. С++ и Java/C# там крепко сели. imho |
| Автор: Lazin 1.8.2008, 07:45 |
| в D очень развитые возможности для метапрограммирования, спасибо Александресску но вообще я больше всего рассчитываю на новый стандарт С++ |
| Автор: kemiisto 1.8.2008, 17:43 |
Да, я тоже на него рассчитываю. Может, наконец то, сложность языка С++ станеть столь огромной, что разработчики посмотрят в сторону языков с более продуманным дизайном. С++ — слишком большой и сложный язык. Я не знаю ни одного человека, который возьмётся утверждать, что он знает его полностью. А можно ли в такой ситуации доверять языку? Lazin, по Вашему опыту, сколько в среднем требуется лет, чтобы изучить С++? |
| Автор: Lazin 1.8.2008, 19:54 | ||||
| как будто я его до конца знаю... вот недавно, например, узнал, что если написать 2 строковых константы подряд они объединяются в одну
напечатает
прикольно |
| Автор: kemiisto 1.8.2008, 21:48 |
| Lazin, а смысл такой языковой "фичи"? Ну, да ладно, впрочем. Бог с ним с С++. Вернемся к нашим... $tatic, у Вас, судя по всему, есть опыт программирования на D. Ну и как Вы сами оцените язык ы целом? |
| Автор: Lazin 1.8.2008, 23:25 | ||
смысл в макросах:
удобно очень хотя вернемся к D... кто нибудь умеет на нем программировать? |
| Автор: $tatic 2.8.2008, 18:51 |
| kemiisto, к сожалению опыта пока нет - нет возможности DMD последней версии скачать :( А хотелось бы на нём 3D-движок затеять. |
| Автор: volte 2.8.2008, 21:10 |
| А по рейтингу http://www.tiobe.com/index.php/content/paperinfo/tpci/index.html, этот язык довольно стабильно движется вверх. |
| Автор: kemiisto 2.8.2008, 21:45 | ||
| volte, во первых этот рейтинг... Ну, вообщем, он ни о чём ровным счётом не свидетельствует. Да и к тому же: http://forum.oberoncore.ru/viewtopic.php?f=26&t=719#p10429!
Вот так то. |
| Автор: volte 3.8.2008, 19:55 | ||
я сомневаюсь, что только продвижение языка D, является активным, а остальные языки ни каких шагов не проявляют. И другие с грешками. что насчёт рейтинга, то во многих статьях идёт ссылка именно к TIOBE, а это наверное не пустозвон, а проверенно и их рейтингом следует принимать во внимание если не как факт, то как один из самых уважаемых мнений. |
| Автор: kemiisto 3.8.2008, 20:43 | ||||
Возможно. Я таких не видел, а если б увидел, что по этому рейтингу в статье судят о популярности ЯП, сразу б читать перестал.
Нет, нет! Как раз таки надо принимать этот рейтинг как факт, т.е. количество запросов "x programming" по различным x. Но не более того. Любые попутки какой-либо иной интерпретации как минимум спорны. |
| Автор: volte 3.8.2008, 22:18 | ||||
из источников был http://www.linuxcenter.ru, http://www.opennet.ru, http://www.rsdn.ru (это лишь те которые я часто использую) и другие...
интерпретировать результаты TIOBE... зачем? они сами признаются, что меряют информационный шум, а не востребованность. тем более как говорится, плохие измерения лучше отсутствия таковых. не нужно забывать, что самих владельцев TIOBE интересует не значения конкретных месячных показателей, а тенденции за длительный период, в которых всплески накрутки рейтинга фанатами какого-либо языка нивелируются длительностью измерений. Так что, как "шумомер" с большой долей погрешности TIOBE вполне адекватен, особенно если не выискивать в нем того, что туда не закладывали сами его создатели. Добавлено через 6 минут и 55 секунд А сам язык выглядит вполне съедобно |
| Автор: kemiisto 3.8.2008, 22:35 | ||
Ох, знаете, очень, ну очень, спорный тезис. Спорный не только в рамках информатики. Имея некоторое отношение к научному сообществу (к химическому правда), уверяю Вас: то, что Вы написали - предмет постоянных споров. Есть некий метод, не дающий 100%-х результатов, но использовать альтернативные методы не представляется возможным по причине их отсутствия или высокой (не обязательно дененжной, а вычислительной, например) стоимости. Стоит ли пользовать такой метод? Нужны ли данные, достоверность которых неочевидна? Тут не всё так однозначно. Признаться, я ещё и сам для себя до конца не решил, чью сторону занять. А за эту информацию будьте любезны кругленькую сумму! Нехорошо. Капиталисты, блин... P.S. Прошу прощенья за Добавлено через 5 минут и 58 секунд http://shootout.alioth.debian.org/debian/benchmark.php?test=all&lang=gdc&lang2=gpp Очень интересный сайт! |
| Автор: $tatic 4.8.2008, 12:28 |
| kemiisto, только лучше имхо брать компилятор DMD. |
| Автор: volte 4.8.2008, 12:48 |
| Судя по тестам, D вполне подойдёт для постепенного вытеснения С++ в новых проектах |
| Автор: Любитель 4.8.2008, 14:04 | ||
Мультилайн-запись строк в первую очередь:
Предполагается, что aaa и bbb очень длинны. |
| Автор: source777 4.8.2008, 14:53 | ||||||
Про остальные пункты уже сказали... На мой взгляд единственным "недостатком" осталось, то что в C# шаблоны - динамические, а в D - статические. Но тут уж вопрос спорный, что лучше? Говорится: Уж лучше голодай, чем что попало есть, и лучше будь один, чем вместе с кем попало. (с) Омар Хайям Во много раз лучше отсутсвие всяких рейтингов, чем присутсвие такого бреда как Tiobe... |
| Автор: $tatic 4.8.2008, 16:17 | ||
source777,
Возможно, но при работе с 3D (OpenGL) это имхо приходится делать немного чаще. |
| Автор: source777 4.8.2008, 20:44 | ||
Тут скорее надо упор делать на скорость работы с вещественными типами, это гораздо более узкое место, чем доступ к памяти. P.S. Кстати хочется отметить, что D - весьма хорошая замена С++ для тех кто ещё до сих пор пользуется этим самым С++. Ну а для тех, кто уже перешёл на .NET | Java, он никаких существенных преимуществ не даёт. + ему не хватает крупной компании в роли двигателя, если у Java есть Sun, у C# - MS & Novell, то у D только Digital Mars, этого маловато чтобы раскрутиться для полноценной конкуренции. |
| Автор: $tatic 4.8.2008, 21:32 | ||
Ну, во-первых, приходится сортировать и обсчитывать объекты огромных современных игровых уровней. При сортировке оптимизация крайне желательна, т.к. это сильно влияет на фпс. Во-вторых, существует потребность быстро загружать данные с диска в память видеокарты (есть даже пейпер Fast Texture Transfers), а это проще всего сделать, если маппить подготовленный на видеокарте буфер и напрямую читать в него файл с диска (OpenGL), либо маппить файл в память с помощью команд ОС. Если принять во внимание технологию мегатекстур, то там крайне важно быстро считывать данные из файла мегатекстуры, т.к. её невозможно загрузить целиком. Быстрый расчёт вещественных чисел, разумеется, тоже важен, в D также есть для этого все средства, включая встроенный x86-ассемблер. Вот как альтернатива C++ язык D очень хорош, по крайней мере у него я вижу только два недостатка - мало литературы и куча плюсовых проектов. |
| Автор: $tatic 9.8.2008, 15:57 | ||
Откуда такие сведения? По моим наблюдениям (профайлинг в NetBeans Profiler) Garbage Collector в циклическом приложении периодически включается и подбирает созданные в цикле объекты. Это хорошо видно по пилообразному графику потребления памяти. GC активируется примерно каждые 5 секунд. |
| Автор: source777 9.8.2008, 18:19 | ||
Согласно Рихтеру:
Т.е. в случае твоего приложения, это вариант, когда приложение беспрерывно создаёт новые объекты... Если бы ты вынес процедуру создания объектов из цикла, то сборшик мусора не проявил бы активности... |
| Автор: $tatic 9.8.2008, 21:00 |
| source777, это понятно, но меня интересуют именно игры, а там, естественно, всё зациклено... Но интересно тогда, чем процесс сборки мусора в JRE отличается от такового в CLR. |
| Автор: source777 9.8.2008, 21:49 | ||
Добавлено через 42 секунды P.S. Про JRE не знаю, жди джавистов... |
| Автор: $tatic 10.8.2008, 20:16 |
| source777, понятно, что большинство "тяжелых" объектов не меняется, но циклически могут создаваться мелкие рабочие объекты... Также следует помнить о динамических подгрузках уровня. |
| Автор: QryStaL 14.8.2008, 09:48 | ||
Зайдите на сайт http://www.visual3d.net, посмотрите демки, ознакомьтесь с возможностями... |
| Автор: source777 14.8.2008, 10:36 |
| $tatic, ты пытаешься найти проблемы там где их нет, и делаешь вид что нашёл не утруждая себя ознакомлением с мат.частью, это бессмыслено и при таком подходе тебе никакой ЯП не поможет, ибо "серебряной пули" нет. Тем более что в твоём вопросе уже разобрались профессионалы 3D-программирования, у них получилось, насколько я помню, что Managed DirectX + C# на 20-30% медленнее, чем DirectX + C++. C XNA насколько я понял дела обстоят ещё лучше, поэтому на твоём месте надо разобраться сначала в вопросе, а потом уж проводить сравнения. |
| Автор: $tatic 15.8.2008, 17:41 |
| source777, ну значит скорость работы D+DX примерно на 10% выше, чем C#+XNA |
| Автор: UnrealMan 16.8.2008, 12:03 |
Он уже несколько лет всего лишь "перспективный язык", этим всё сказано Добавлено через 6 минут и 42 секунды Кстати, что касается быстродействия, то вы не забывайте, что в C++09 будет поддержка семантики перемещения (пока что отсутствие таковой в C++ - это, IHMO, единственный серьёзный минус, негативно сказывающийся на производительности). |
| Автор: maggot 16.9.2008, 23:00 | ||
Так рассуждают люди, которые не смогли осилить С++. На самом деле, с новым стандартом туда добавят многое, чего не хватало в текущем. И дизайн там вполне продуманный за исключением, конечно, макросов и некоторых других анахронизмов. Время изучения языка С++ зависит от начальной подготовки обучаемого и от его способностей. Есть такие, которые даже Си выучить не могут. Я считаю, за год можно не напрягаясь выучить. Это если не пытаться поставить рекорд, но и просто не отвергать С++ как язык программирования. Если интересно узнать своё знание С++, можно пройти тест на Brainbench. Вообще они стоят денег, тк сайт буржуйский. Но вот, там есть бесплатный тест http://www.brainbench.com/xml/bb/common/testcenter/taketest.xml?testId=2752 PS А вообще будущее за функциональными ЯП. |
| Автор: kemiisto 17.9.2008, 01:14 | ||||
Так рассуждают люди, которых бог/судьба/... миловал(а), и их путь в мире программирования проходит в стороне от шумной магистрали C/C++/Java. Люди эти ни сколько об этом не жалеют, а даже, напротив, ... Ладно, оставим эту избитую тему...
Одно другому не мешает? Видимо при принятии предыдущего стандарта дизайн продумать не удалось, коль скоро "добавят многое, чего не хватало"? Почему же, Вы надеетесь, что в этот раз, всё будет продумано? За чем, простите?
Ба! Как же раньше удавалось писать программы без этой штуки?! Это хоть что за зверь такой? |
| Автор: nerezus 16.11.2008, 11:38 | ||
Только вот придется библиотеки ВСЕ переписывать. Перепишешь мне на D все используемые мной библиотеки для C++? ) Начни, пожалуйста, с Qt. И документацию тоже) |
| Автор: Suliman 14.3.2013, 19:44 |
| Кстати открылся официальный русский сайт языка программирования D http://dlang.ru/ |
| Автор: ТарасАтавин 30.11.2013, 13:46 | ||||
| Хоть бы что нибудь одно что ли выбрали: или низкоруовневость, или c, а то получается: - Это кто к нам пришёл? - Я мистер Рочестер гвардеец кардинала. Добавлено @ 13:48
Добавлено @ 13:53
Добавлено через 9 минут и 4 секунды Не только, а даже. И появились за долго до идеи написать виндоус. Добавлено через 11 минут и 9 секунд Не знаю ни одного языка проще. |
| Автор: drug007 20.8.2014, 17:27 | ||||||||
Понекромансю
Это уже далеко не тот язык, что был несколько лет назад. Язык динамично развивается, при этом очень стараются не ломать уже существующий код.
D очень хорошо сочетает императивщину и функциональщину. По мне так в нем проще и быстрее прочувствовать прелесть функциональщины оставаясь в привычном С++ подобном мире. Плюсам тут D, кстати, не догнать по определению, ибо иммутабельность если еще можно как-то к плюсам прикрутить, то транзитивность const и immutable уже не прикрутишь не сломав код.
D практически в совершенстве владеет линковкой с сишными библиотеками, биндингов не нужно. Поддержка плюсов ограничена, но присутствует. Вот недавно добавили поддержку неймспейсов и будут прикручивать поддержку шаблонов. Так что биндинги будут все проще и проще. По шаблонам плюсы просто "ниочем" в сравнении с D. Я, собственно, плюсовые шаблоны стал понимать после дишных. Qt с их мок-компилятором и всей своей жирностью как бе намекает, что в дизайне языка (я про плюсы) изначально много пробелов. И биндинги к куте непростая вещь в связи с этим. GTK в этом плане рулит. А документацию можно родную использовать.
А зачем деструкторы, если используется ГЦ, в котором время сборки мусора не детерминировано? Там финализаторы вроде как есть. Плюсы сложны как раз в своей непродуманности. Они как ящик с инструментом на все случаи жизни. Причем порой инструменты дублируют друг друга частично, иногда конфликтуют и их куча. Отсюда сложность языка, которой можно было бы избежать. |