Опыт с [закрытым] D-языком-программирования

Возможно, глобальные переменные не являются плохими в вашем случае. С другой стороны, они вам нужны? Что вы получаете, используя их?

Даже в вашем случае глобальные переменные затрудняют определение состояния приложения. Это может помешать отладке и может привести к незначительным ошибкам.

Глобальные переменные также усложняют тестирование. Они добавляют зависимости от внешнего кода, которых вы можете избежать во время тестирования.

Но, наконец, глобалов трудно избежать при программировании на C. На более продвинутом языке глобалы просто бессмысленны в большинстве случаев. Использование их просто не делает ваш код более понятным.

В Си есть много случаев, когда глобальные переменные являются просто лучшим, самым простым и чистым решением.

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

19
задан Bobby 15 September 2010 в 07:05
поделиться

2 ответа

Я провел несколько дней, играя с D, чтобы посмотреть, как он сравнивается с C ++ и java. Он позиционируется как еще один способ добиться того же, что и C ++, но без всего неопределенного поведения и с добавлением сборщика мусора, цикла foreach и некоторых других современных тонкостей. Он компилируется в собственный код, поэтому вы получаете доступ ко всем обычным оптимизациям, которые могут произойти из этого сценария.

Весь язык C инкапсулирован как подмножество D как строительные блоки нижнего уровня, из которых строится большая часть языка. Это может помочь с переносимостью, но также предотвращает превращение D в единую согласованную методологию.

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

В D. обычно используются две структуры классов. По умолчанию используется Phobos, он довольно спартанский и простой по дизайну, позволяющий создавать нужные структуры, но предоставляющий несколько больших или сложных строительных блоков. Другой - Tango , который напоминает библиотеку классов java и содержит гораздо более полную структуру. Существует также проект, обеспечивающий взаимодействие двух библиотек.

По моему опыту, D - довольно хороший язык для программирования, имеющий много общего с C # и java, и позволяющий получить доступ к необработанному оборудованию через C и даже сборка interop. Основное ограничение, которое я вижу, - это отсутствие поддержки хороших инструментов разработки. Есть несколько IDE и плагинов, но ничего очень полного, так что вам может быть лучше с текстовым редактором и инструментом сборки командной строки тем временем.

Существует две версии языка: D1 и D2. На данный момент D1 лучше поддерживается фреймворками и компиляторами, а D2 добавил несколько удобных функций, которые упрощают работу с языком и его использование.

Обновление (июнь 2009 г.): Недавно я снова заглянул в D и подумал, что мне следует обратить внимание на DSource , который теперь имеет несколько различных проектов компилятора и является домом для библиотеки Tango, различных привязок, нескольких наборов инструментов GUI и пара IDE. Некоторые из проектов были заброшены в начальной стадии, но я считаю, что на сегодняшний день многие из них набирают обороты и успешно развиваются. На данном этапе очень похоже, что успех D будет определяться движением за открытый исходный код в гораздо большей степени, чем его прародителями.

Обновление (февраль 2012 г.) Хотя я не особо много смотрел на D с момента моего последнего редактирования, я отмечу, что D2 сейчас вышел, благодаря поддержке замечательной книги Язык программирования D . Типичный для Александреску, он раскрывает множество деталей системы шаблонов, включая ограничения шаблонов, которые делают D гораздо более выразительным и типобезопасным инструментом, чем текущее состояние C ++.

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

38
ответ дан 30 November 2019 в 03:25
поделиться

Если посмотреть на такие вещи, как популярность языка и т. Д., Я обнаружил, что Tiobe - хороший ресурс http://www.tiobe.com/content/paperinfo/tpci/index.html

Как видите, D находится в первой двадцатке.

1
ответ дан 30 November 2019 в 03:25
поделиться
Другие вопросы по тегам:

Похожие вопросы: