Вопросы и ответы

  • Что это за стандарт?

    — Стандарт языка — это толстый документ, исчерпывающе описывающий синтаксис, семантику и даже «правила хорошего тона» для разработчиков. Свои стандарты есть у каждого крупного языка. Когда человек учит язык, фактически он изучает актуальный стандарт. Администрированием стандарта занимается Международная организация по стандартизации — 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 может хватить, чтобы прославиться.

  • Если я приму вашу помощь, мне придётся взять вас в соавторы?

    — Нет :)

  • А гонорар заплатят?

    — Нет.

  • Пожалуй, буду пробовать! Как взяться, с чего начать?

    — У нас есть инструкция :)