Хабрахабр

[Перевод] Мое видение будущего D

Когда Андрей Александреску покинул пост заместителя руководителя отдела языка программирования D, меня попросили взять на себя эту роль в будущем. Нет необходимости говорить об этом, но я все равно скажу, что эта шапка на меня великовата.
Я все еще вхожу в свою новую роль в обществе и выясняю, как я хочу действовать и что это вообще такое. Этот процесс происходит не в вакууме, так как Уолтер тоже с нами.

Что бы я хотел, чтобы стало с D в ближайшем будущем:
На форумах D меня попросили написать в блоге о моих «мечтах и дальнейших шагах для D», так вот результат.

Безопасность памяти

«Но D — язык с GC!», слышу я ваши восклицания. Да, но это также системный язык программирования с нессылочными типами и указателями, что означает, что сегодня D не является полностью безопасным по работе с памятью. DIP1000 был шагом в правильном направлении (прим.пер.система заимствования, как в Rust, см.тут), но работа с памятью должна стать безопасной до тех пор, пока программист не откажется через «Я знаю, что я делаю» с помощью @ trusted атрибута блока или функции. Это подразумевает переход на @ safe по умолчанию.

Простая и надежная многопоточность

Мы в большинстве своем уже в нужной точке — использование модели акторов устраняет многие проблемы, обычно возникающие. Осталось закончить работу над атрибутом shared и сделать всё @ safe.

Сделать D языком программирования по умолчанию

Возможности D в плане статической рефлексии и генерации кода делают его идеальным кандидатом для создания кода, который должен вызываться из нескольких различных языков и окружений (например Python, Excel, R и т.д.). Обычно это делается путем спецификации структур данных и вызовов RPC на языке определения интерфейсов (IDL), а затем переводится на поддерживаемые языки с соответствующим протоколом обмена.

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

Непревзойденная рефлексия

Вместо разрозненных способов работы с фрагментированными API (__traits, std.traits, велосипеды), я бы хотел, чтобы была библиотека, которая централизовала бы все потребности в рефлексии с прекрасным API. Я уже работаю над этим.

Упрощение интероперабельности с С++

Как я уже упоминал в своем выступлении на DConf 2019, C++ достиг успеха, сделав переход от языка Си практически бесшовным. Я бы хотел, чтобы нынешние программисты на языке C++ с устаревшей кодовой базой так же легко могли начать писать код на D. Вот почему я написал dpp (прим.пер.транслятор заголовков С++ в D), но это еще не все, и нам, возможно, придется внести изменения в язык, чтобы адаптировать это в будущем.

Быстрота разработки

Я думаю, нам нужен невероятно быстрый интерпретатор, чтобы мы могли отказаться от постоянной машинной генерации кода и компоновки. По-моему, это должен быть стандартный способ запуска unittest блоков (прим.пер.юнит-тесты встроены в язык) для обеспечения быстрой обратной связи, и чтобы программистам приходилось компилировать свой код только для достижения максимальной производительности и/или для развертывания конечным пользователям. Это также позволило бы ввести REPL.

Интерполированные строки

Изначально я был против этого, но чем больше я об этом думал, тем больше это было логично для D. Почему? Строковые миксины. Генерация кода является одной из сильнейших сторон D, а строковые токены позволяют визуально радовать блоками кода, которые на самом деле являются «просто строками». Интерполяция строк значительно упростила бы их использование. Пока что в разработке находится черновой вариант DIP.

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

Обсуждение на D-форуме тут

DeepL.com/Translator (это не автоматический перевод, если кто не заметил, и в то же время этот переводчик с элементами ИИ весьма помогает) Переведено с помощью www.

S. P. Ее заподозрили в рекламе (ах, упоминается донат) и исключили из хаба D. Кто пропустил предыдущую статью из блога про планы D для мобильной разработки.

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»