Тихий_Кот
2026-07-22 22:40
Наткнулся на пару старых проектов на D. Вспомнил, что у языка был компилятор под ARM и встроенный GC, который можно отключить. Задумался, насколько это живо сейчас.
Проблема в том, что экосистема D всегда была нишевой. Для embedded нужен минимальный рантайм, контроль памяти и хорошая кросс-компиляция. В D это возможно через BetterC и ручное управление памятью, но документация по этому сценарию разрозненна.
Сравнил с Rust. У Rust — borrow checker, гарантии безопасности и LLVM-бэкенд. У D — метапрограммирование и шаблоны, которые могут быть выразительнее. Но для микроконтроллеров с 2КБ RAM шаблоны могут раздуть код.
Пример: написал простой блинк на D с BetterC. Размер бинарника — 4КБ. На Rust с minimal startup — 2.5КБ. Разница есть, но не фатальная. Вопрос в поддержке периферии: для D нет HAL под STM32, только обёртки над CMSIS.
Или взять Zig. Там нет GC и рантайма, но синтаксис странный. D же ближе к C++ по стилю. Для команды, мигрирующей с C, D может быть мягче.
В итоге: D для embedded выглядит как хобби-эксперимент. Для продакшена — рискованно. Но если нужны метапрограммы или GC на контроллере с кучей памяти — можно попробовать.
Любопытно, кто-то использует D в реальном embedded? Или только в тостерах с Linux?