Новости Эпоха перемен в Rust: первый шаг к официальной спецификации

NewsMaker

I'm just a script
Премиум
13,858
20
8 Ноя 2022
Как формируется будущее одного из самых популярных языков программирования.


thvcmhisykmfwdxqv7lf1985vhl91mi9.jpg


Руководство языка программирования Rust объявило о создании Команды по спецификации, что является важным шагом к разработке спецификации для языка, который до сих пор успешно обходился без неё.

Это Для просмотра ссылки Войди или Зарегистрируйся (RFC), опубликованного в июне прошлого года, в котором, в том числе, задавался вопрос о необходимости такой спецификации.

В новую команду входят четыре человека: Джоэл Марси в роли редактора спецификации, Феликс Клок и Марас Бос в качестве руководителей команды, а также Эрик Хасс как член команды. Бос является автором первоначального RFC.

Согласно Для просмотра ссылки Войди или Зарегистрируйся команды, их работа будет координироваться с заинтересованными сторонами, включая всех членов команды языка Rust и других, например, представителей операционных систем, в частности Linux и Windows. Microsoft уже в сентябре этого года Для просмотра ссылки Войди или Зарегистрируйся первоначальный код для разработки драйверов Windows на Rust.

Отношения между командой спецификации и командой языка неоднозначны. Например, в языках C и C++ стандарты определяет комитет стандартов, а реализация компиляторов может не полностью соответствовать спецификации или даже расширять её. В Java существует сообщество процессов, которое выдает официальную спецификацию.

<span style="font-family: var(--ui-font-family-primary, var(--ui-font-family-helvetica));">Однако команда спецификации Rust утверждает, что "авторитет по определению языка Rust остаётся за соответствующими командами, такими как команда языка и команда API библиотеки". Это согласуется с первоначальной целью команды спецификации, которая заявляет: "Мы ожидаем, что первые версии спецификации будут в значительной степени сосредоточены на подробном описании текущей версии Rust."</span>

Существует мнение, что если команда спецификации не отвечает за "определение языка Rust", то она не совсем команда спецификации в обычном понимании этого термина, хотя их результаты будут более похожи на спецификацию, чем на документацию. Этот Для просмотра ссылки Войди или Зарегистрируйся обсуждался в сообществе, где один из участников спросил: "если истиной остаётся 'то, что делает rustc', то в чём смысл спецификации?" На что член команды ответил: "если rustc отличается от спецификации, это ошибка в одном из них, и какая именно, нужно определять в каждом конкретном случае."

Тем не менее, будет предпринята попытка сделать спецификацию доступной для любого программиста Rust, ищущего ответы на вопросы о языке. Команда также признаёт, что её первоначальная работа может содержать пробелы и неточности, но ожидает, что эти пробелы будут уменьшаться по мере развития спецификации.

Как будет поддерживаться синхронизация спецификации с языком? В настоящее время Rust имеет шестинедельный цикл выпуска, что потенциально может оставить спецификацию позади. "Выпуски Rust будут продолжаться независимо от процесса утверждения спецификации", - заявляет новая команда, даже если это означает, что "выпуск будет проходить без соответствующей спецификации". Однако существует попытка провести черту, когда речь идет о изменениях, достаточно значительных, чтобы их называть "особенностями языка". В итоге ожидается, что обновлённые спецификации будут выпускаться в соответствии с циклом релизов.

Это первый шаг, и понятие полной спецификации для Rust пока остаётся далеким. Однако, когда она появится, она будет ценной. Один из комментариев Для просмотра ссылки Войди или Зарегистрируйся : "Я считаю, что причина, по которой мой работодатель пока остаётся с C, заключается в отсутствии официальной формальной спецификации, которую мы могли бы точно представить в Isabelle, наличие точного математического определения помогло бы мне аргументировать в пользу перехода на Rust для работы по верификации в нашей группе." Для просмотра ссылки Войди или Зарегистрируйся - это инструмент для доказательства математических формул.

Точность важна, и хотя вопрос спецификации не беспокоит большинство разработчиков, наличие такой спецификации потенциально может повысить ценность языка.
 
Источник новости
www.securitylab.ru

Похожие темы