Вопросы и ответы
-
Что это за стандарт?
— Стандарт языка — это толстый документ, исчерпывающе описывающий синтаксис, семантику и даже «правила хорошего тона» для разработчиков. Свои стандарты есть у каждого крупного языка. Когда человек учит язык, фактически он изучает актуальный стандарт. Администрированием стандарта занимается Международная организация по стандартизации — ISO.
Программирование — высокотехнологичная сфера, поэтому языки программирования быстро устаревают и их всё время нужно приспосабливать к новым условиям.
Поэтому в ISO заседают экспертные советы, которые собирают предложения от разработчиков по всему миру и определяют, какие изменения нужно внести стандарты. Совет, отвечающий за C++, утверждает новую версию стандарта раз в 3 года. На очереди версия С++23 — она появится в 2023 году.
Авторы компиляторов, как правило, реализуют поддержку новой версии стандарта задолго до официального решения ISO. Это позволяет разработчикам поэкспериментировать с нововведениями и сообщить о найденных недочётах.
-
Что такое предложение к стандарту?
— Экспертный совет небольшой и не может придумать всё сам — большую часть полезных изменений предлагают разработчики, не входящие ни в какие совещательные органы. Можно сказать, что сейчас C++ развивается «коллективным разумом», а не управляется небольшой группой руководителей.
Процедура внесения предложений формализована — разработчик, который придумал что-то полезное, должен представить довольно объёмный документ, написанный по определённым правилам — proposal. Звучит страшно, но на самом деле облечь хорошую идею в proposal не так уж сложно — особенно с нашей помощью.
-
Кто может писать предложения?
— Любой опытный разработчик, отлично знающий язык.
На самом деле перспективная идея может прийти в голову и новичку со свежим взглядом, но новичку будет непросто учесть всевозможные тонкости, ограничения и общее направление развития языка.
-
И что, в самом деле принимают?
— Да. Все отправленные и принятые proposals хранятся на сайте open-std.org/jtc1/sc22/wg21/docs/papers. Принимают не всё, конечно, но шанс есть.
-
А сколько времени занимает написать?
— Ну это как с дипломом или диссертацией. Один пишет за несколько бессонных суток, другой — за несколько лет. Всё зависит от самой идеи и от вас.
Сам proposal по объёму примерно соответствует записке к диплому выпускника технического вуза.
-
И что, прямо я могу взять и написать?
— Ну да! Пишите уже.
-
Да бросьте, что я могу придумать? Пусть умные люди пишут.
— Ну вы напишите, а мы посмотрим. Великие начинали с малого. Например, создатель Boost.Filesystem, автор функций для работы с файлами в С++17 начал с того, что попросил вернуть в стандарт случайно выпавшую из него функцию getline.
-
Что мне это даст? Меня сразу пригласят на работу в Яндекс, Фейсбук и Гугл? Будут звать на лучшие конференции мира?
— Зависит от вашего вклада в C++. Станьте Саттером или Майерсом, и вас будут звать все фирмы мира. Чудес, как обычно, ожидать не стоит, но даже одного proposal может хватить, чтобы прославиться.
-
Если я приму вашу помощь, мне придётся взять вас в соавторы?
— Нет :)
-
А гонорар заплатят?
— Нет.
-
Пожалуй, буду пробовать! Как взяться, с чего начать?
— У нас есть инструкция :)