> А как у него с производительностью и потреблением памяти в сравнении с
> C++?зависит от компилятора, натурально. сейчас их есть три:
• DMD: компилирует быстро, как понос выходит. качество кода примерно такое же.
• GDC: использует бэкэнд gcc, качество кода как у gcc.
• LDC: использует бэкэнд llvm, качество кода как у llvm.
GDC и LDC обычно отстают на одну‐две версии от DMD.
насчёт потребления памяти — это уже как напишешь код. phobos (стандартная библиотека) сильно подвязан на gc (хотя работа в направлении отвязывания идёт), прямое сравнение затруднительно.
в общем и целом — микробенчмарки сосут, как обычно. вдобавок, сильно зависят от того, как написан код. в среднем — вполне сравнимо с цпп. встроенные ассоциативные массивы, правда, получались несколько медленней, чем stl-ные хэши.
из личного опыта: даже выхлоп DMD вполне юзабелен. всё равно большинство прикладного софта занимается ожиданием — то пользователя, то i/o, то сети… критичные по скорости места можно писать практически gc-free. если надо ещё скорости выжать — gdc.
в среднем — gdc пока что несколько хуже g++, потому что не умеет агрессивных девиртуализаций, например. с другой стороны — классы с виртуальными методами в D используются намного реже, чем в C++: вместо этого в D обычно используют простые структуры и метапрограммирование, так что классы с наследованием нужны намного реже.
в общем — вполне юзабелен для разных задач, от игр‐платформеров до высоконагруженых сетевых сервисов. в подавляющем большинстве случаев отлично заменяет C++. траблы могут быть разве что в проектах, которые сильно подвязаны на плюсовые библиотеки: взаимодействие с плюсами есть, но достаточно базовое. то есть, ни stl, ни сложных шаблонов (для этого, понятно, вообще нужно полноценный цпп‐компилятор реализовывать). но так как я от крестовых библиотек бегаю изо всех сил, то мне плевать.