Дайджест событий из мира D №2

В последнее время на Хабре стало много публикаций на тему 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 Çehreli «Programming in D». От себя добавлю, что всячески рекомендую эту книгу. С ее бесплатной версией можно ознакомиться тут.

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

image

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

10. Обновился биндинг к Qt/QML DOtherSide

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

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

  • 3,7%Не хватает полноценной поддержки разработки под мобильные устройства6
  • 13,5%Не хватает нативного и универсального GUI22
  • 3,7%Нужна интеграция с С++ кодом6
  • 48,5%По прежнему сомневаюсь в будущем языка79
  • 9,2%Не хватает различных инструментов (полновесные ORM и тд)15
  • 4,9%Не хватает нативных библиотек8
  • 6,1%Уже перешел, все устраивает10
  • 4,9%D для меня слишком низкоуровневый (пишу на скриптовых языках).8
  • 5,5%D для меня слишком высокоуровневый (Пишу на С/Rust)9
AdBlock похитил этот баннер, но баннеры не зубы — отрастут

Подробнее
Реклама

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

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


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

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

          Надо бы развернутое сравнение языков провести…
            0
            Не буду с вами спорить, но как по мне — Go это полноценный преемник Java в большинстве её ниш. Если D позиционируется языком более высокого уровня, чем С/C++/Rust (что, в общем-то, верно в силу наличия GC, включённого по-умолчанию и обязательного для стандартной библиотеки), то тогда он вынужден конкурировать с Go в этой нише. По-моему разумению (достаточно много писал на Go, но, к сожалению, так и не попробовал D), D там ничего не светит.
              –1
              Go это полноценный преемник Java в большинстве её ниш
              У которого нет generics («пока не особо нужны») и интеграции с другими ЯП (не считая C, ибо JNI), а go get умеет только тащить из репы последний коммит. Простите, но Go такой же полноценный преемник Java, как селфи-палка — полноценный преемник штатива.

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

                Насколько я знаю, D является преемником C++, избавленным от бремени обратной совместимости с C, со сборкой мусора и менеджером зависимостей. ИМХО, этого недостаточно в наши дни, чтобы заполучить активное сообщество разработчиков, тем более, заставить бизнес применить D в продакшне.
                  –1
                  Чтобы понять, что Земля вертится вокруг Солнца не обязательно лететь в космос. Можно полагаться на отзывы умных людей, таких как астрономы.
                  Можно, если речь идёт о научном методе и проведённых экспериментах. У вас же источник информации — кофейная гуща.
          0
          Beduin, логин на вашем сайте не работает. Просьба сообщить когда ваш сайт заработает уже в режиме «продакшена». В свою очередь я оповещу посетителей своего сайта http://dlanguage.ru об этом событии. Пока удалось собрать тридцать заинтересованных участников. Это не много, но и не мало. Считаю, что главная задача — не разбегаться по «ресурсам», а наполнять комьюнити участниками, естественно и тематическим материалом, проектами. Ну а там уж разберемся, где и чего размещать. Успехов!
            0
            По поводу 8.:
            8. На D был написан самый быстрый парсер Json в мире fast, обогнавший почти в два раза самую быструю реализацию парсера Json на С++.
            Как ни прискорбно, это не следствие классности Ди. Этот парсер не валидирует входные данные полностью, в отличие от многих других, участвующих в этих тестах производительности. Такая разница в производительности — как всегда, из-за разницы в используемых алгоритмах.
              –1
              Что вы понимаете под полностью? «UTF-8 validation of non-string input (file, ubyte[])»
                +1
                С главной репозитория:
                The contained functions avoid… input validation.
                Пояснение: они разбирают столько полей, сколько просят, и не проверяют, что данный JSON-объект вообще соответствует структуре, куда происходит десериализация.
              +1
              Что в первую очередь останавливает вас от перехода на D?

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

              Как по мне, им следовало часть денег, которые они собирают на конференции, направить на создание нормальной IDE, с которой начинающий программист сможет начать писать на D, сразу после установки, пропуская увлекательный процесс установки и конфигурирования toolchain'ов.
                0
                Есть такое. Пользуюсь попеременно Monodevelop и DDT (Eclipse), оба пока сыроваты, часто не работают автодополнение и переход к определению. На работе приходится писать на Java для Android, и от суицида спасает только Intellij IDEA (на Java даже в носу не поковыряешь без boilerplate). Это лучшая IDE из всех, которые я пробовал, и наличие качественного плагина D для неё может значительно повысить популярность языка.
                  0
                  Может пригодится Intellij Plugin for the D Programming Language https://github.com/kingsleyh/DLanguage
                    0
                    Ага, я в курсе про этот плагин. Он пока что умеет только подсветку синтаксиса и работу с Dub, до вышеупомянутых сред ему далеко — и это неудивительно, т.к. его разрабатывает всего один человек.
                    0
                    Это да, если полноценный плагин для IDEA замутить, цены бы не было этому редактору, при использовании D.
                  +2
                  Мне кажется, не хватает пункта — «не востребован на рынке». Хотя тут замкнутый круг выходит.
                    0
                    В последнее время на Хабре стало много публикаций на тему Rust и Go и достаточно мало про D. Главной причиной этого является поддержка этих языков Mozilla и Google, которые могут вкладывать большие деньги в свои детища.

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

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

                    Самое читаемое