Привет. Объясните что такое D. Насколько я понял это нормально сделанный C++, который еще сильно нестабилен. Есть сейчас смысл его учить и использовать? Как там обстоят дела с производительностью? Много рантайма тащат за собой программы?
Ну, судя по тому, что Александреску перешел на D, учить и использовать стоит, хотя сам я его толком не ковырял. Самый известный из проектов, которые на нем сейчас пишут, это OpenMW, наверное.
я еще не дочитал описание языка, но выглядит интересно. меня больше волнует то что он еще нестабилен. что если со временем он превратится во второй C++ или его вообще забросят?
> я еще не дочитал описание языка, но выглядит интересно. меня больше волнует то что он еще нестабилен. что если со временем он превратится во второй C++ или его вообще забросят?
пока трудно что сказать - но быстрого роста популярности этого языка ожидать точно не стоит
П.С. я лично продолжаю ждать новый стандарт С++ - 201х, а также его реализацию в gcc, icc, msvc.
Так а зачем он, собственно? Если бы массово заменили им плюсы, то еще куда ни шло. А так, средненький язычок без нормальных development tools. Есть языки гораздо интересней и развитей, чем subj. Используйте, конечно, если хотите.
Java и C# не имеют нормальной реализации. У Java - байт код, а C# вдобавок работает только под виндой. Не знаю как Java, а в C# что то многовато стали всего встраивать.
Ну джава вполне себе компиляется в нативный бинарник, есть http://gcc.gnu.org/java/ но это имхо редкостное извращение. А вообще с нормальными компилируемыми языками все далеко не так хорошо, как хотелось бы. Только вот нафиг оно нужно сейчас, когда интернет быстрый, и даже в секретарской машинке гиг памяти и пара ядер стоит? Разве что для embedded.
>Из экзотики лучше уж учить Haskell
Хаскел это круто, но я про империативные языки.
>Это не C++, так что термин "нормальность" тут не к месту
Ну прообразом послужил наверное всетаки C++
Какие в моно тормоза? Отличие от нативного кода даже не в разы, если писать хоть более-менее грамотно. Ты высоконагруженный сервер что-ли писать собрался, чтобы тебя волновали 20-50% ???
> 20-50% - огромная цифра, волновать должны даже 1-2%
1-2% - погрешность оптимизации компилятора :)
Есть задачи где 20-50% важны, есть - где без разницы. Если видео обрабатываешь - то 20% уже делает погоду (хотя там уже не 20% будет, да и либу на C/C++ при необходимости можно написать).
приятный язык с туманным будущим и большим разбродом в реализациях. смысл рассмотреть для общего развития есть - уже хотя бы за эйфелевский design by contract и специфические возможности метапрограммирования
производительность хорошая, рантайм (при использовании gc) немаленький - ~400Kb на hello world (во всяком случае ещё недавно было где-то так). если допилят нормальный binding к Qt - будет очень неплохой заменой плюсам в этой области
ну вообщем да, конечно небольшая потеря производительности не так важна, и часть кода можно написать на C, но до диез мне не нравится.
чем то он смахивает на дельфи - дохрена человек его юзает, но ни о каких серьезных проектах на нем я не слышал. и стандарта нет, и переносимости и даже обратной совместимости. закроет мелкософт лавочку и будут все эти делфисты учить очередной C#@^$
Тут еще не упоминали Common Lisp? Ну, тогда я упомяну. >И требование таскать за собой рантайм.
Рантайм за собой таскает даже Си. И этот рантайм широко известен в узких кругах под названием "операционная система"(исключения, вроде компиляторов, генерирующих код для микроконтроллеров, в расчет не берем). А у плюсов - куда вы уедете без того же Qt? А оно пожирнее многих рантаймов будет.
И, да - ну вот кого сейчас заботят какие-то там 20-30 лишних мегабайт, когда приложения жрут память и место *сотнями* мб и гигабайтами? Вы что, ембеддед пишите? Сомневаюсь.
статические конструкторы плохи тем, что они вызываются неявно.
а ad hoc перегрузка это вообще не перегрузка. просто несколько процедур, у которых даже параметры разные. даже, если они отличаются только типами - у нас будет несколько процедур которые похоже вызываются, но на самом деле различны.
>динамическая типизация это не круто
Почему? Value typing дает больше, чем отнимает, уверяю.
К тому же, там не чисто динамическая.
Декларации типов, плюс - современные компиляторы умеют частичный вывод типов - ругнутся если увидят ошибку.
Эстеты могут на макросах создать прослойку со статической типизацией.
Ну и вот, макросы - таких ни в одном другом языке нет. Императивщина на высшем уровне(плюшки вроде перезапусков, динамических переменных, динамических "goto", unwind-protect, loop). ОО-система одна из лучших вообще. Функциональщина в умеренных количествах. Можно и другие парадигмы добавлять - макросами, да.
> OCaml как ни странно. На нём в императивном стиле ни что писать не мешает.
OCaml императивный стиль хоть и допускает, но отнюдь не поощряет. Удобно сочетает оба подхода (функциональный и императивный) к примеру та же Scala. Но та опять таки либо под JVM, либо под Net.
>статические конструкторы плохи тем, что они вызываются неявно.
т.к используются для инициализации (иногда с довольно сложным кодом) исключительно до main() > ad hoc перегрузка это вообще не перегрузка. просто несколько процедур, у которых даже параметры разные. даже, если они отличаются только типами - у нас будет несколько процедур которые похоже вызываются, но на самом деле различны.
Но выполняют схожую работу, тогда, почему бы и нет?.
вот только при необходимости написать Qt-powered приложение рантайм CL не только не заменит Qt, он к нему приложится сам - вместе с прослойкой-binding'ом. и работать оно в результате будет не очень хорошо
>И, да - ну вот кого сейчас заботят какие-то там 20-30 лишних мегабайт
>вот только при необходимости написать Qt-powered приложение рантайм CL не только не заменит Qt, он к нему приложится сам - вместе с прослойкой-binding'ом. и работать оно в результате будет не очень хорошо
Не писал никогда на CL что-то, связанное с Qt. И не вижу смысла.
Может, укажете мне, неразумному, что ж я пропустил то?
Для гуя есть средства получше.
На всякий случай - при необходимости встроить в приложение на плюсах рантайм лиспа... и далее по тексту.
И, да - с плюсами вообще мало чего хорошо работает. >как раз тех, кому и может быть интересен язык D
Конкретнее!
Области применения D - ? >Это не наезд а констатация факта - то что ты написал прямо указывает на это - кроме lisp ты ничего не видел.
О, мудрейшая, а может поведаете, что ж я такого сказал то?
Но, на самом деле, это я факт констатировал; с троллием общаться желания нет.