Мое видение будущего 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-форуме тут

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

P.S. Кто пропустил предыдущую статью из блога про планы D для мобильной разработки. Ее заподозрили в рекламе (ах, упоминается донат) и исключили из хаба D.
Источник: https://habr.com/ru/post/471950/#habracut

Интересные статьи

Интересные статьи

Если честно, к Д7 у меня несколько неоднозначное отношение. В некоторых местах я попискиваю от восторга, а в некоторых хочется топать ногами и ругаться неприличными словами.
Есть статьи о недостатках Битрикса, которые написаны программистами. Недостатки, описанные в них рядовому пользователю безразличны, ведь он не собирается ничего программировать.
Эта публикация написана после неоднократных обращений как клиентов, так и (к горести моей) партнеров. Темы обращений были разные, но причиной в итоге оказывался один и тот же сценарий, реализу...
Если Вы используете в своих проектах инфоблоки 2.0 и таблицы InnoDB, то есть шанс в один прекрасный момент столкнуться с ошибкой MySQL «SQL Error (1118): Row size too large. The maximum row si...
В «1С-Битрикс» считают: современный интернет-магазин должен быть визуально привлекательным, адаптированным для просмотра с мобильных устройств и максимально персонализированным с помощью технологии Бо...