Content:
General
Security/hack
Programming
Art/Stuff
 
 
наша рассылка
Твой E-mail:
Submit
 
 
  Язык D
 
 
  Краткий обзор данного языка взят с wiki, тем, кто заинтересуется Google в помощь. Для всех остальных просто полезно знать, что такое существует и активно развивается. :)

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

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

В D собран опыт разработки десятков компиляторов для самых разнообразных языков программирования, а также попыток создания крупных проектов на этих языках. Язык D вобрал в себя лучшее из тех языков (больше всего из C++) и практично применил эти возможности.

Почему D?

И действительно, почему? Кому нужен другой язык программирования?

Индустрия программного обеспечения прошла долгий путь с тех пор, как изобрели язык C. Много новых концепций было реализовано в языке C++, но его обратная совместимость со своим предком заставила унаследовать не только достоинства, но и недостатки языка C. Тем временем, и в C и в C++ реализуются новые возможности, которые опять же были внедрены в существующую структуру языков таким образом, чтобы не было необходимости переписывать старый код. Результат получился довольно неоднозначный и запутанный — стандарт C насчитывает 500 страниц, а стандарт C++ — около 750 страниц! C++ является сложным и слишком разнообразным для его полной реализации, в результате чего существует множество его реализаций, что лишает возможности писать переносимый код.

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

C++ поддерживает динамические массивы и конкатенацию строк в качестве части стандартной библиотеки, а не на уровне ядра языка. Может ли мощь и насыщенность возможностями языка C++ быть извлечена, переконструирована и переработана в простой и практичный язык?

Возможности, унаследованные от C/C++

Общий синтаксис языка D схож с синтаксисом C и C++. Это делает легким его изучение и портирование кода. Переход от C/C++ к D должен проходить без проблем. Программисту не придется привыкать к другому подходу написания кода.

Для того чтобы использовать язык D, программисту не обязательно ограничивать себя специализированной виртуальной машиной (VM), как это сделано с Java и Smalltalk. Для D не существует виртуальной машины. Программы, написанные на D, компилируются в файлы объектов, которые затем могут быть объединены линкером в исполняемый файл. D взаимодействует с операционной системой так, как это делает C. Знакомые инструменты, например make, подойдут и для разработки на языке D.

  • Сохранены синтаксис и семантика языков C и C++. D использует те же формы выражений и общий план программ;
  • Программы на D могут быть написаны с использованием функционального и объектно-ориентированного подходов, а также с использованием шаблонов (template metaprogramming) или любой комбинации этих трех подходов;
  • Поддерживается модель разработки по этапам компиляция/линкование/отладка (compile/link/debug), но ничто не мешает откомпилировать код D в байт-код и интерпретировать его;
  • Обработка исключений (exception handling). Опыт использования обработки исключений показывает, что существует более совершенный стиль обработки ошибок, чем традиционное для языка C использование кодов ошибок и переменной errno;
  • Приведение типов в реальном времени. Отчасти это было реализовано и в C++. Способ приведения типов в языке D позволяет улучшить процесс сбора мусора и облегчить процесс отладки;
  • D поддерживает совместимость с соглашением о вызове функций в языке C, что делает возможным прямой доступ из кода на языке D напрямую к программному интерфейсу операционной системы. В работе с API в D могут быть использованы уже имеющиеся знания и опыт;
  • Перегрузка операторов. В языке D можно перегружать операторы с целью расширения списка операций над пользовательскими данными;
  • Использование шаблонов. Шаблоны дают возможность создавать обобщенные функции, оперирующие независящими от типа данных переменными. В языке D шаблоны лишены недостатков шаблонов из языка C++.

Для кого и чего предназначен язык D

  • Для программистов, регулярно пользующихся анализаторами кода для выявления ошибок еще до компиляции;
  • Для людей, которые компилируют код с максимальным количеством включенных уровней предупреждений (warning levels), что означает интерпретацию предупреждений как ошибок;
  • Для тех, кто решил, что обещание легкого объектно-ориентированный подхода к программированию в языке C++ не выполняется из-за его сложности и запутанности;
  • Для программистов, которых впечатляет мощь языка C++, но разочаровывает необходимость ручного управления памятью и ловля багов, связанных с указателями;
  • Для проектов, нуждающихся во встроенных средствах тестирования и верификации;
  • Для команд разработчиков, разрабатывающих приложения, исходные тексты которых содержат миллионы строк кода;
  • Для программистов, которые считают, что язык программирования должен поддерживать достаточное количество возможностей для абстрактной работы с указателями;
  • Для математических программистов. Язык D поддерживает работу с комплексными числами и операторами определения NaN’ов (not a number) и бесконечностей (infinity). Они были добавлены в стандарт C99, но не в C++.

Для кого и чего D НЕ предназначен

  • Вообще-то никто не собирается конвертировать миллионы строк исходного кода на C/C++ в код языка D. А поскольку компилятор D не будет работать с не модифицированным исходным кодом C/C++, язык D не предназначен для уже существующих программ (однако, D поддерживает существующие API для языка C);
  • Для очень маленьких программ, для которых больше подойдут языки скриптования или интерпретируемые языки, например Python или Perl;
  • В качестве первого языка программирования. Basic и Java больше подойдут для начинающих программистов, а язык D предназначен для тех, кто уже имеет опыт программирования и для профессиональных программистов;
  • Для борцов за чистоту языка. D является практичным языком и каждая его особенность реализуется таким образом, чтобы сохранить эту практичность. Например, в языке D нет необходимости использовать указатели в ординарных ситуациях, но работа с указателями поддерживается.
Источник: ru.wikipedia.org
 
Интро | О проекте | Услуги | Статьи | Обратная связь
Freelance web designer