В последнее время на Хабре стало много публикаций на тему 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.
Несколько месяцев назад в бумажном виде вышла замечательная книга Ali Çehreli «Programming in D». От себя добавлю, что всячески рекомендую эту книгу. С ее бесплатной версией можно ознакомиться тут
8. На D был написан самый быстрый парсер Json в мире, fast, обогнавший, почти в два раза самую быструю реализацию парсера Json на С++.
Language Time,s Memory, Mb
D Gdc Fast 0.34 226.7
C++ Rapid 0.79 687.1
C++ Gason 0.83 582.2
Rust 1.26 234.7
9. Вышел полноценный бининг к библиотеке графических приложений SFML.
10. Обновился биндинг к Qt/QML DOtherSide
ссылка на оригинал статьи http://habrahabr.ru/post/270901/
Добавить комментарий