Уолтер Брайт (Walter Bright) - владелец небольшой американской компании Digital Mars, которая разрабатывает одноименные трансляторы для различных языков и платформ. Брайт известен как главный разработчик первого C++компилятора и как автор-основатель языка программирования D. Первоначально автор называл свое творение как Mars Programming Language, однако в дружеской среде прижилось и впоследствии закрепилось более короткое название языка – «Ди», как новорожденного потомка C++.
Как говорит сам Walter Bright, язык D - это «практический язык для практичных целей». Язык D - это логическая целостность и простота Java плюс широкие возможности языка C. Язык D - это мощь современного объектно-ориентированного языка и низкоуровневость языка C.
Программисты С++ найдут для себя большую простоту в языке D, возможно скорость разработки. Программисты, практикующие язык Java - доступ к функциям операционной системы и большую производительность.
Важные преимущества Java – это независимость от операционной системы, освобождение неиспользуемой памяти (сборка мусора), простота кода и очевидность целей. То есть, каждая деталь языка существует с целью, которую человек способен понять. Что естественным образом меняет ощущения от программирования в лучшую сторону, позволяет больше сконцентрироваться на проектировании, не теряя времени на изучение особенностей и хитросплетений языка.
В программе, выполненной на Java можно написать только то, что предусмотрели разработчики виртуальной машины. Например, окна, файлы, доступ в Интернет, приложения для работы в локальной сети - все это отлично работает. Но вот вам захотелось установить какие-то системные настройки, или перехватить нажатия клавиш. В операционке эта возможность есть, а в Java машине нет. Можно, конечно, написать нативные модули, и объединить их с программой на Java. Но где же тогда простота и целостность?
Вторая беда Java - это производительность. Есть определенная доля проектов, для которых язык Java не пригоден именно из-за этого. Манипуляция с большими объемами данных, работа с большими файлами, приведение типов в больших массивах могут оказаться не эффективными на виртуальной машине.
Возьмем, к примеру, мой словарь Orfo Switcher. Словарь русского языка представляет файл определенного формата. По сути своей это набор структур размером в четыре байта. Файл довольно внушительный, размером около 5-ти мегабайт. В таких языках как D или С я могу просто "поднять" файл в память и объявить, что эта область памяти является массивом структур. И дальше я могу работать в программе с этим массивом как обычно. Это и есть приведение типов. Для этого не требуется НИКАКОГО процессорного времени. В Java напрямую так сделать нельзя. Пришлось бы читать это файл побайтно и запихивать их в какую-то сущность (массив, вектор) с дополнительной обработкой файла. Т.е. потребовалось бы довольно много времени, внимания. Миллионы операций вместо одной. А сколько бы времени потребовалось на поиск похожих слов? Ведь для этого нужно подставить на каждое (!) место в слове каждую букву алфавита. И проверить все эти варианты на существование в словаре. Т.е. прошерстить весь словарь много раз. Слово из десяти букв нужно будет проверить 10*32 = 320 раз! И это только ошибки связанные с неправильной буквой. Есть еще ошибки пропускания, добавления лишних букв в слове. Еще примерно столько же переборов. Трудно даже представить, сколько времени это займет на Java- машине.
Теперь о языке С++. Замечательная, если не сказать гениальная объектная модель. Это превосходная, если не сказать максимальная, производительность. Это миллионы строк уже написанного кода на все случаи жизни. С++ - это мировая популярность, почти стандарт. Смело можно сказать, что это самый крутой язык, для самых крутых программистов. Но это также и часы, проведенные в поисках трудноуловимых ошибок, непонятность или правильнее сказать неочевидность многих вещей и, самое главное время, потраченное на его изучение. Говорят, что спустя годы программист С++ не знает что ему делать - любить или не ненавидеть этот язык. Понимание красоты и гениальности языка приходит не сразу. Для этого нужно пройти большой путь. И путь этот никак не усеян розами.
Русскоязычный сайт языка D
http://dprogramming.ru/
Официальный сайт языка D
http://digitalmars.com/d/
Open source community
http://dsource.org/
Англоязычный сайт о языке D
http://www.dprogramming.com
Программа проверки орфографии, выполненная на языке программирования D -
В 2001 году язык Java использовало более половины североамериканских разработчиков. К настоящему времени число приверженцев программирования на Java растет с каждым днем по всему миру, в том числе и среди тех, кто работает в средах Visual Basic и C/C++.
Статистика популярности
языков программирования компании TIOBE software показывает к концу 2007 года стабильный интерес разработчиков к языкам Java и С, снижение интереса к языкам C++, Perl, Delphi, и рост популярности Visual Basic, PHP, Python, Ruby, D.