Доброго времени суток! Возможно вопрос получится наивным… Очень заинтересовался в последнее время языком программирования D, и даже есть желание в будущем поделится полученным опытом с сообществом если получится. Не хотелось бы просто переводить мануалы и прочую литературу. И так, что бы вы хотели узнать об этом языке? Какие моменты, будь то юнит-тестирование, параллельное программирование, организация доступа к базам данных, работа с 3D, etc?
Насколько его можно применять, если нет времени «играться», а нужно что-то реализовать.
Т.Е.:
— достоинства по простоте разработки для конкретных задач по сравнению с языками — прямыми конкурентами
— недостатки в тех же сравнениях
— важные языковые различия по отношению к «базисным» языкам, вроде С++/Java
— личные позитивные и негативные впечатления от особенностей языка
— стабильность в рантайме и стабильность апи библиотек (совместимость между версиями)
— охват достойными библиотеками конкретных задач (бд, сеть, гуи, етц)
Оу, прям готовый план для статьи :) Сам, к сожалению, смогу сравнить только с PHP в области web-программирования, на счет С++\Java, думаю смогу совместно со знакомыми провести сравнение
D по сути переработанный C++. Я увы с ним знаком мельком, толком ничего не писал, но по идее в плане WEB разработки он будет много дороже PHP или той же Java.
По синтаксису языка он ближе к C++ чем скажем к java, но все же мне он нравится больше чем C++, пожалуй тем что он все же ближе к Java чем C++.
К слову вроде как с метапрограммированием в этом языке все очень даже неплохо. Инструментов может и меньше, но все что нужно есть.
Похоже, что я не совсем понимаю ваш вопрос, но какие алгоритмы вас интересуют? Реализация каких-то алгоритмов на си или на д? Или вы хотите список тех алгоритмов, которые нужно сравнить?
Если первое, то я думаю, что можно брать алгоритмы из STD или буста для сей, про д не скажу, не знаю.
Если второе, то стандартные сортировки или какие-нибудь классические задачи из серии найт подстроку в строке, вычислить простые числа итд итп.
Если вы имели в виду что-то другое, уточните пожалуйста.
1. Совместимость с C/C++
— написание библиотеки на D, используемой из C/C++
— использование из D библиотеки на C
— использование из D библиотеки на C++
2. Доказательства того, что это хорошая замена именно C (компактность)
— примеры кода, начиная с hello world на D и C, сравнение у результата вывода ldd и размера бинарника :)
3. Применимость на классических задачах, на которых хороши языки высокого уровня:
— работа с regexp'ами (сравнение с perl)
— работа с БД (сравнение с JDBC, perl DBI)
— простой HTTP-клиент
— простой HTTP-сервер
4. Управление процессами
— запуск процесса, перехват stdin/stdout/stderr
5. Написание GUI-приложения
— варианты простых диалогов на gtk
К управлению процессами я бы еще добавил конкуретный доступ к разделяемым ресурсам. Есть ли в D удобные синтаксические конструкции для многопоточной работы?
Полезен был бы пример реализации на D чего-то полезного, какого-нибудь приложения или игры. Или, был бы полезен хороший обзор имеющихся на этом языке приккладных библиотек. Можно ли к MySQL или Mongo подсоединиться из D?