В последнее время на Хабре стало много публикаций на тему Rust и Go и достаточно мало про D. Главной причиной этого является поддержка этих языков Mozilla и Google, которые могут вкладывать большие деньги в свои детища. За D не стоит ни одной столь же крупной компании, однако это не мешает языку активно развиваться. Сейчас я кратко расскажу о последних новостях языка и оставлю кому-то другому возможность провести комплексное сравнение Rust/Go и D.

1. Первое и главное. D был наконец-то конвертирован с С++ на сам D. Событие крайне значимое. Это стало не только важным шагом в развитии целостной инфраструктуры, но и позволило значительно упростить процесс разработки т.к. не все люди заинтересованные в развитии D знают С++. Следует отметить, что имело место не простое переписывание кода, а полуавтоматическая конвертация всей кодовой базы DMD c C++. А это десятки тысяч строк кода (да DMD не маленький). О том как все проходило можно посмотреть на этом видео:



2. D активно движется в сторону облегчения интеграции с С++ кодом, что должно упростить процесс перехода С++ программистов на D. На данный момент D единственный язык, который может обеспечить практически бесшовную интеграцию с уже имеющимся С++ кодом. Ни Rust ни Go такого позволить не могут. Движение идет как со стороны официального компилятора DMD, так и со стороны сторонних LLVM-based компиляторов. Так сообщается, что Walter Bright, по совместительству автор первого С++ компилятора (работающего без промежуточной трансляции в С) активно работает над поддержкой обработки С++ исключений в D.

Интеграция с С++ кодом активно продвигается и со стороны проекта Calypso, первый публичный релиз которого должен состояться уже совсем скоро. Пока для пользователей Linux доступна тестовая сборка, которая позволяет собирать даже такие сложные библиотеки как Qt5 и Ogre3D. Сборка для Windows будет доступна вместе с первым публичным релизом. Так что ждем.

Вообще план развития Calypso следующий:
Улучшение поддержки С++ исключений --> улучшение поддержки С++11 --> поддержка MSVC --> улучшение magicport2 (инструмент для перевода С++ кода на D) --> полный бустраппинга Calypso (чтобы не писать биндинги для Clang) --> Calypso как библиотека для LLVM/Clang.

3. Активно ведутся работы над поддержкой мобильных платформ. В настоящий момент сообщается, что рантайм языка и библиотека Phobos проходят практически все тесты на устройствах Android. О полноценной поддержке разработки под iOS пока говорить нельзя, однако благодаря усилиям проекта LDC-iphone несложные приложения на D под iOS писать можно уже сегодня.

Тоже самое касается и основного компилятора DMD, который в последней версии получил базовую поддержку Obj-C.

Если все пойдет такими темпами, то в ближайшие под года D откроет для себя огромную нишу мобильных утсройств, что должно благотворно сказаться на его популярности.

4. Была создана некоммерческая организация D Language Foundation. Миссия заключается в содействии развитию сообщества D. Фонд отвечает за различные процессы в рамках сообщества D, включая разработку референсного компиляотра DMD, управление интеллектуальными правами, организацию конференций разработчиков, включая DConf, и сбор средств

5. После долгих профилактических работ вернулся к жизни dlang.ru

6. Веб-фреймворк vibed сменил несколько версий и продолжил курс на повышение модульности.

7. К выходу в печать готовится сразу несколько книг по программированию на D.

D Web Development

image

Learning D

image

Несколько месяцев назад в бумажном виде вышла замечательная книга Ali Cehreli «Programming in D». От себя добавлю, что всячески рекомендую эту книгу. С ее бесплатной версией можно ознакомиться тут.

8. На D был написан самый быстрый парсер Json в мире fast, обогнавший почти в два раза самую быструю реализацию парсера Json на С++.

image

9. Вышел полноценный бининг к библиотеке графических приложений SFML.

10. Обновился биндинг к Qt/QML DOtherSide
Что в первую очередь останавливает вас от перехода на D?

Проголосовало 156 человек. Воздержалось 68 человек.

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

Комментарии (19)


  1. NeoCode
    15.11.2015 18:18

    Там скорее перевели заменами сишный код в синтаксис Ди, чем «переписали». Код-то по сути тот же самый, многие куски чисто в олдскульном goto-oriented стиле (видимо еще от Symantec осталось). И оригинальный backend не переписывали, а там самая жесть.


  1. mezastel
    15.11.2015 18:59

    После долгих профилактических работ вернулся к жизни dlang.ru


    логин через facebook не работает


  1. ababo
    15.11.2015 23:55
    +4

    За D не стоит ни одной столь же крупной компании, однако это не мешает языку активно развиваться.
    А может это не случайно, что не стоит? Если честно, то мне просто кажется, что у D сегодня нету такой киллер-фичи, которая смогла бы активно привлекать разработчиков. По простоте разработки его переиграл Go с его феноменальными минимализмом и элегантностью, по системной ориентации — Rust, дающий гарантии безопасности памяти и параллелизма.


    1. beduin01
      16.11.2015 00:05
      +5

      Go и элегантность?! Элегантность Go под большим вопросом, а минимализм явно до примитивизма доведен. Язык явно может хорошо жить только в очень узкой нише веб-сервисов.

      Rust, да системный, только D с ним в разных нишах. В куче мест ручное управление ресурсами будет только мешать.

      Надо бы развернутое сравнение языков провести…


      1. ababo
        16.11.2015 11:48

        Не буду с вами спорить, но как по мне — Go это полноценный преемник Java в большинстве её ниш. Если D позиционируется языком более высокого уровня, чем С/C++/Rust (что, в общем-то, верно в силу наличия GC, включённого по-умолчанию и обязательного для стандартной библиотеки), то тогда он вынужден конкурировать с Go в этой нише. По-моему разумению (достаточно много писал на Go, но, к сожалению, так и не попробовал D), D там ничего не светит.


        1. burjui
          16.11.2015 16:05
          -1

          Go это полноценный преемник Java в большинстве её ниш
          У которого нет generics («пока не особо нужны») и интеграции с другими ЯП (не считая C, ибо JNI), а go get умеет только тащить из репы последний коммит. Простите, но Go такой же полноценный преемник Java, как селфи-палка — полноценный преемник штатива.

          остаточно много писал на Go, но, к сожалению, так и не попробовал D
          D там ничего не светит.
          «Не читал, но осуждаю»


          1. ababo
            16.11.2015 17:02
            +1

            У которого нет generics («пока не особо нужны») и интеграции с другими ЯП (не считая C, ибо JNI), а go get умеет только тащить из репы последний коммит.
            Вы перечисляете детские болезни. Кроме того, я, наверное, соглашусь с утверждением, что усложнение поддержкой generics языка, чьей важнейшей фишкой является простота, является неоправданной.
            «Не читал, но осуждаю»
            Чтобы понять, что Земля вертится вокруг Солнца не обязательно лететь в космос. Можно полагаться на отзывы умных людей, таких как астрономы.

            Насколько я знаю, D является преемником C++, избавленным от бремени обратной совместимости с C, со сборкой мусора и менеджером зависимостей. ИМХО, этого недостаточно в наши дни, чтобы заполучить активное сообщество разработчиков, тем более, заставить бизнес применить D в продакшне.


            1. burjui
              16.11.2015 21:40
              -1

              Чтобы понять, что Земля вертится вокруг Солнца не обязательно лететь в космос. Можно полагаться на отзывы умных людей, таких как астрономы.
              Можно, если речь идёт о научном методе и проведённых экспериментах. У вас же источник информации — кофейная гуща.


  1. Majestio
    16.11.2015 00:01

    Beduin, логин на вашем сайте не работает. Просьба сообщить когда ваш сайт заработает уже в режиме «продакшена». В свою очередь я оповещу посетителей своего сайта http://dlanguage.ru об этом событии. Пока удалось собрать тридцать заинтересованных участников. Это не много, но и не мало. Считаю, что главная задача — не разбегаться по «ресурсам», а наполнять комьюнити участниками, естественно и тематическим материалом, проектами. Ну а там уж разберемся, где и чего размещать. Успехов!


  1. mkpankov
    16.11.2015 03:03

    По поводу 8.:

    8. На D был написан самый быстрый парсер Json в мире fast, обогнавший почти в два раза самую быструю реализацию парсера Json на С++.
    Как ни прискорбно, это не следствие классности Ди. Этот парсер не валидирует входные данные полностью, в отличие от многих других, участвующих в этих тестах производительности. Такая разница в производительности — как всегда, из-за разницы в используемых алгоритмах.


    1. beduin01
      16.11.2015 07:47
      -1

      Что вы понимаете под полностью? «UTF-8 validation of non-string input (file, ubyte[])»


      1. mkpankov
        16.11.2015 12:57
        +1

        С главной репозитория:

        The contained functions avoid… input validation.
        Пояснение: они разбирают столько полей, сколько просят, и не проверяют, что данный JSON-объект вообще соответствует структуре, куда происходит десериализация.


  1. 9mm
    16.11.2015 14:10
    +1

    Что в первую очередь останавливает вас от перехода на D?

    Нет полнофункциональной IDE, которую можно скачать и сразу начать работать, без плясок с бубном.
    Пробовал VisualD — какой-никакой отладчик, автодополнение так себе (хотя смотрел года 2 назад), и, только под Windows.
    MonoD — хорошее автодополнение, поддержка dub, но нет отладчика и сама IDE не располагает — какое-то странное поведение перемещения по словам.

    Как по мне, им следовало часть денег, которые они собирают на конференции, направить на создание нормальной IDE, с которой начинающий программист сможет начать писать на D, сразу после установки, пропуская увлекательный процесс установки и конфигурирования toolchain'ов.


    1. burjui
      16.11.2015 15:35

      Есть такое. Пользуюсь попеременно Monodevelop и DDT (Eclipse), оба пока сыроваты, часто не работают автодополнение и переход к определению. На работе приходится писать на Java для Android, и от суицида спасает только Intellij IDEA (на Java даже в носу не поковыряешь без boilerplate). Это лучшая IDE из всех, которые я пробовал, и наличие качественного плагина D для неё может значительно повысить популярность языка.


      1. beduin01
        16.11.2015 18:14

        Может пригодится Intellij Plugin for the D Programming Language https://github.com/kingsleyh/DLanguage


        1. burjui
          16.11.2015 21:35

          Ага, я в курсе про этот плагин. Он пока что умеет только подсветку синтаксиса и работу с Dub, до вышеупомянутых сред ему далеко — и это неудивительно, т.к. его разрабатывает всего один человек.


      1. Rathil
        18.11.2015 01:49

        Это да, если полноценный плагин для IDEA замутить, цены бы не было этому редактору, при использовании D.


  1. Hertz
    16.11.2015 15:18
    +2

    Мне кажется, не хватает пункта — «не востребован на рынке». Хотя тут замкнутый круг выходит.


  1. divan0
    17.11.2015 13:05

    В последнее время на Хабре стало много публикаций на тему Rust и Go и достаточно мало про D. Главной причиной этого является поддержка этих языков Mozilla и Google, которые могут вкладывать большие деньги в свои детища.

    Как человек, больше всего пишущий на Хабре про Go, заявляю, что Google не платит мне не копейки :) и само утверждение далеко от истины. Google платит зарплату разработчикам, ничего более. Всё остальное — результат естественного принятия языка миром. Все конференции, митапы, книги и прочая активность вокруг Go не имеют с Google никакой связи.