Сотрудники Яндекса Будут Представлять Россию В Комитете По Стандартизации C++



Сотрудники Яндекса будут представлять Россию в комитете по стандартизации C++

Хочу поделиться с вами хорошей новостью: теперь мы можем влиять на развитие C++! Под «мы» я подразумеваю всех российских программистов, работающих с C++.

Но обо всем по порядку.

Рабочая группа по стандартам C++ Язык программирования C++ не развивается спонтанно.

Его разработку контролирует международная организация ISO/IEC, а точнее рабочая группа внутри этой организации.

ISO/IEC JTC1/SC22/WG21 C++ .

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

При этом большая часть предложений, как правило, вносится самими членами комитета.

Зачем писать предложения и модернизировать C++ Ради славы и денег :) А также ради того, чтобы писать код было удобнее и работать быстрее.

Начнем с простоты написания кода.

Чем больше отличных решений будет в стандартной библиотеке, тем меньше велосипедов придется изобретать заново для типичных задач.

Не было там раньше станд::поток — и каждому приходилось писать свои классы для кроссплатформенной работы с потоками.

Не было там раньше станд::массив — и мало кто знал, как вернуть массив из функции.

станд::атомный избавил людей от необходимости прибегать к ассемблерному коду или использовать расширения, специфичные для компилятора.

Теперь о скорости.

Вы можете исправить наиболее оптимальные решения в стандарте или добавить новые возможности, ускоряющие код из коробки.

Например, rvalue-references позволяли ускорить работу некоторых приложений без изменения пользовательского кода.

станд::строка недавно приобрел возможность хранить небольшие строки без динамического выделения памяти, что также положительно сказалось на производительности приложений.

Ну а теперь о славе и деньгах.

Представьте себе диалог при приеме на работу: — Вы работали со стандартным компонентом библиотеки станд::что угодно ? - Да, это я придумал станд::что угодно и участвовал в его продвижении до стандарта C++.

- Вы приняты! При чем здесь Яндекс? C++ — один из основных языков разработки в Яндексе.

Недавно мы подумали, что было бы неплохо иметь больше контроля над таким важным для нас инструментом.

Итак, мы начали работать над созданием рабочей группы по C++.

Цели были амбициозные: понять, как все работает в комитете по стандартизации C++, создать рабочую группу людей, близких к этой теме, дать российским разработчикам возможность влиять на развитие языка, иметь возможность передавать наши успешные разработки по стандарту и т.д. Так сотрудники Яндекса копали-копали и случайно докопались до меня, который к тому времени уже работал в Яндексе.

Как вы, возможно, знаете, в свободное время я разрабатываю библиотеку.

Способствовать росту , я активно помогаю людям по всему миру писать предложения по улучшению стандарта, и у меня есть несколько собственных предложений по улучшению стандарта C++, которые находятся на рассмотрении.

- Стоп, стоп, стоп! - заметит здесь читатель.

— Если предложения по C++ можно принять без «Яндекса», то зачем нам «Яндекс»?

Все очень просто.

Вы можете написать предложение по улучшению языка C++, но есть несколько нюансов.

  • Нужно быть очень «в курсе» и знать, что именно написать в предложении, чтобы не пришлось переписывать его по десять раз.

  • Вам придется либо самому присутствовать на заседании WG21, либо найти кого-то, кто поедет на заседание комитета в Америке или Европе и будет защищать там ваше предложение и отвечать на вопросы.

  • Некоторые успешные предложения были приняты одним голосом, поэтому хорошо иметь союзников в комитете.

  • На собраниях иногда «не хватает рук».

    Если во встречах примут участие представители Яндекса, можно будет либо рассмотреть больше заявок, либо подробнее описать авторам предложений, что необходимо улучшить.

Именно с этими проблемами нам и предстоит помочь.

Помимо меня, группу будет возглавлять Александр Фокин, который возглавляет одну из команд, разрабатывающих Поиск, и активно помогает в модернизации кодовой базы и внедрении в рабочую практику возможностей новых стандартов C++.

Как и когда это будет работать На данный момент мы находимся в самом начале пути.

Мы создали рабочую группу (РГ21) на базе сотрудников Яндекса, группа является национальной зеркальной рабочей группой.

ISO/IEC JTC1/SC22/WG21 C++ .

Нам еще предстоит разобраться в бюрократических вопросах, познакомиться с членами WG21, принять участие в нескольких заседаниях и включиться в рабочий процесс.

Кроме того, C++17 уже не за горами, и сейчас все заняты подготовкой финальной версии стандарта.

Но если все пойдет по плану, то в декабре этого года мы начнем помогать российским разработчикам с предложениями по развитию языка C++.

Что бы мы добавили в стандарт в первую очередь? Мы очень заинтересованы в стандартизации плоских контейнеров, таких как boost::container::flat_set и boost::container::flat_map .

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

У нас также есть ряд компонентов, которые широко используются в нашем коде и будут полезны многим разработчикам.

Первое, что приходит на ум, — это класс трассировки стека.

Чтобы включить наши компоненты в стандарт, нам нужно много чего: перевести имена в нижний регистр, вырвать из класса компоненты, которых нет в стандарте, добавить интеграцию с классическими потоками ввода-вывода, сделать их общедоступными, получить обратная связь и т. д. Мы также надеемся, что начнется работа над предложениями по динамической загрузке библиотек – P0275R0 И P0276R0 .

Ранее подобные предложения были отвергнуты из-за их сложности, но на этот раз удалось свести изменения в ядре языка к минимуму.

Есть также идеи о вещах, которые крайне проблематичны для продвижения, например: классы интерфейса , доступ к полям структуры по индексу и базовое отражение.

Куда писать, если есть предложения Мы создали список рассылки [email protected] — отправляйте туда свои предложения, идеи и пожелания.

Мы постараемся ответить хотя бы на самые интересные и перспективные.

Максимум – за все.

Вместо результатов Мы подготовили здесь небольшую анкету, чтобы оценить объём предстоящей работы и заинтересованность людей.

В опросе могут участвовать только зарегистрированные пользователи.

Войти , Пожалуйста.

Проверка: 3,38% У меня есть (скоро будут) готовые предложения и прототипы для включения в стандарт C++, их надо представить на встрече.

8 12,66% Есть идеи по включению в стандарт C++, нужно написать предложение/прототипы, сам не могу (или ленюсь).

30 10.97% У меня куча мелких замечаний и однострочных поправок к стандарту.

26 88.19% Мне нужен класс для вывода трассировки стека :) 209 Проголосовали 237 пользователей.

295 пользователей воздержались.

Теги: #программирование #c++ #C++ #Яндекс #ИТ-стандарты #Идеальный код #c++17 #c++14 #стандартная библиотека #стандарты

Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.