Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Перспективы языка D
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > Программирование
_Pasha
Здравствуйте! Сабж.
Кто интересовался, выскажите плз свои соображения по поводу жызненно это или не очень.
Пока мое мнение такое, что он, конечно, зачат в правильной позе, но вынашивается не очень - на основе бесчисленных хотелок фанат-коммунити. Может, я за деревьями леса не вижу?
Короче, интересно посидеть в сторонке и послушать.
demiurg_spb
А смысл? Ну да, сферический конь в вакууме...
Сложить мнение можно лишь начав его использовать.
А что бы на это сподвигнуться нужна задача, но до сих пор как-то обходился С и С++, как и подавляющее большинство наших коллег.
В ближайшее время, думаю, вряд ли что измениться.
MrYuran
Цитата(demiurg_spb @ May 27 2011, 08:33) *
А что бы на это сподвигнуться нужна задача, но до сих пор как-то обходился С и С++, как и подавляющее большинство наших коллег.
В ближайшее время, думаю, вряд ли что измениться.

Ну все-таки С++ (не говоря про С) на сегодняшний день уже довольно убогий. И в первую очередь засчёт очень скудных средств препроцессора.
Шаблоны в С++ несколько улучшают ситуацию, но вот почитал я того же Александреску - это ж свихнуться можно.
Книга напоминает сборник магических заклинаний. Интересно, захватывает, но крыша потихоньку едет набекрень.
Кодогенерация таким способом - это для маниаков.
Old-school в виде процедурного программирования тоже нынче уже не катит. Нужно что-то новое.
dxp
Цитата(MrYuran @ May 27 2011, 12:36) *
Ну все-таки С++ (не говоря про С) на сегодняшний день уже довольно убогий. И в первую очередь засчёт очень скудных средств препроцессора.

Ну, уж и убогий. Вполне мощный современный низкоуровневый ЯП. Его недостатки в виде препроцессора, местами дурацкого синтаксиса - это наследие С, совместимость с которым была поставлена во главу угла и именно благодаря которой этот ЯП смог стать таким используемым.

И если на больших машинах сейчас множество задач вполне успешно решаются с использованием высокоуровневых (скриптовых) языков, то в embedded плюсам самая ниша - эффективная реализация при внушительной мощи языковых средств.

Самый главный недостаток плюсов - это, имхо, сложность. Но тут причина не столько в самом языке, сколько в его низкоуровневости, которая подразумевает тучи нюансов почти по всем аспектам. Поэтому эффективно разрабатывать ПО на нём можно только если имеется достаточный опыт. Думается, что с D, как продолжением этой линейки, ситуация будет аналогичной.

Цитата(MrYuran @ May 27 2011, 12:36) *
Шаблоны в С++ несколько улучшают ситуацию, но вот почитал я того же Александреску - это ж свихнуться можно.
Книга напоминает сборник магических заклинаний. Интересно, захватывает, но крыша потихоньку едет набекрень.
Кодогенерация таким способом - это для маниаков.

Это с непривычки. sm.gif Да, многие финты там возникают оттого, что в языке не были предусмотрены определённые средства - например, оператор определения типа на этапе компиляции - ведь эта функциональность вполне бесплатно даётся (в смысле накладных рантайма), делается компилятором, совместимость с прежними версиями не нарушает, но до сих пор не добавили - вот Александреску и наизобретал финтов, как это реализовывать.

На самом деле там у него почти все навороты относятся к области, где давно рулят ЯП более высокого уровня, в том числе и функциональные. Конечно, сравнивать по удобству и безопасности эти языки с С++ некорректно (как и С++ сравнивать с ними по эффективности кода sm.gif). Это просто другая ниша. Естественно, что использовать средство не в своей нише - это всегда сложности и риск.

Как бы то ни было, Александреску - это отдельная тема. Подавляющее большинство кода пишется не в таком стиле, и плюсы вполне себя оправдывают.
demiurg_spb
Цитата(dxp @ May 28 2011, 09:18) *
Да, многие финты там возникают оттого, что в языке не были предусмотрены определённые средства - например, оператор определения типа на этапе компиляции
Для этого в gcc есть: typeof и ещё много чего полезного, но не стандартного.

Цитата(MrYuran @ May 27 2011, 09:36) *
Ну все-таки С++ (не говоря про С) на сегодняшний день уже довольно убогий.

Ничего не стоит на месте.
_Pasha
Цитата(dxp @ May 28 2011, 08:18) *
Думается, что с D, как продолжением этой линейки, ситуация будет аналогичной.

Ну, там сразу позиционируется гибрид lazy-programming и Сишных красот.
Повторюсь, не нравится бессистемность развития, - информации, куда идти, нету, она пока что собирается.

Цитата(demiurg_spb @ May 28 2011, 12:04) *
Для этого в gcc есть
***
Ничего не стоит на месте.

Но развивается иногда кривым путем, как в той истории с Fixed Point
demiurg_spb
Цитата(_Pasha @ May 28 2011, 13:26) *
Но развивается иногда кривым путем, как в той истории с Fixed Point
Ну не таким уж и кривымwink.gif
Кстати в контексте можно и про c# упомянуть. Тоже имеет место быть (не в моём вкусе правда).
Очень динамично развивается, но так-ли это хорошо?
AndrewKirs
Насколько я знаю, в мире существует под 10 тысяч языков программирования. Создать новый язык нетрудно - трудно сделать его настолько полезным, чтобы окупились затраты по переходу на него целой армии разработчиков.
Еще трудно написать толстую кипу библиотек поддержки - и отладить их. Уже реализованные проекты зачастую учитывают, например, известные ошибки библиотек - как Вам идея все это перенести под новый язык, с его специфическими ошибками?
Когда-то язык Си славился малым размером, сейчас его наследника, Си++, маленьким никак не назовешь. Мое сочувствие лицам, изучающим с нуля его сейчас. С другой стороны, нет необходимости учить С++ целиком - в нем много подмножеств, достаточных для программирования. А чтобы новый язык, типа D, оттеснил такого признанного лидера, он должен быть на порядок лучше. Грубо говоря, резко повысить скорость написания и отладки кода и гарантировать резкое повышение надежности. Косметических улучшений будет недостаточно.
AlexandrY
Цитата(AndrewKirs @ Jul 8 2011, 18:23) *
Насколько я знаю, в мире существует под 10 тысяч языков программирования. Создать новый язык нетрудно - трудно сделать его настолько полезным, чтобы окупились затраты по переходу на него целой армии разработчиков.
Еще трудно написать толстую кипу библиотек поддержки - и отладить их. Уже реализованные проекты зачастую учитывают, например, известные ошибки библиотек - как Вам идея все это перенести под новый язык, с его специфическими ошибками?
Когда-то язык Си славился малым размером, сейчас его наследника, Си++, маленьким никак не назовешь. Мое сочувствие лицам, изучающим с нуля его сейчас. С другой стороны, нет необходимости учить С++ целиком - в нем много подмножеств, достаточных для программирования. А чтобы новый язык, типа D, оттеснил такого признанного лидера, он должен быть на порядок лучше. Грубо говоря, резко повысить скорость написания и отладки кода и гарантировать резкое повышение надежности. Косметических улучшений будет недостаточно.


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

Поэтому любой язык может вдруг подняться только потому что появится новый тип приложений, а вовсе не от того что он что то там повышает и ускрояет. Взять тот же PHP.
Повышают и ускоряют нынче интегрированные среды разработки, а не языки.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.