Скоро начинается новый сезон конференций, а потому предлагаем вам ознакомиться с лучшими докладами по С++ с прошлого сезона. Эта подборка самых громких докладов за 2023 год поможет вам поглубже узнать С++ и набраться вдохновения. Вперёд за идеями и просвещением!

Delivering Safe C++ — Bjarne Stroustrup

CppCon 2023

Презентация на GitHub

Нашу подборку открывает самый долгожданный доклад по С++: автор языка Бьёрн Страуструп рассказал о применении и развитии современного С++.

Бьёрн разбирается с тремя основными вопросами:

  1. что означает "безопасный" в контексте различных применений C++;

  2. как гарантировать безопасность там, где она необходима;

  3. как заставить разработчиков писать безопасный код.

Отдельно порекомендую видео с отцом С++ отнюдь не на техническую тему — "(Life) Advice From The Creator of C++". Успешным программиста делают не только его технические навыки, но и личностное развитие. Видео короткое, но очень вдохновляет и мотивирует.

*(char*)0 = 0; - What Does the C++ Programmer Intend With This Code? — JF Bastien

C++ on Sea 2023

Всё выступление строится вокруг следующего фрагмента кода:

int main() {
  *(char*)0 = 0;
}

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

Бастьен подробно разбирает представленный код и предлагает свои интерпретации намерения программиста. Вас ждёт не просто разбор, а большое увлекательное путешествие вверх и вниз по технологическому стеку; подробное изучение того, что делает такая, казалось бы, простая программа. Наслаждаемся погружением в глубины С++.

Как антитезу предлагаю почитать недавнюю статью от нашей команды. Часто можно встретить, казалось бы, простой и на вид безошибочный код. Но мы, амбассадоры статического анализа, как никто знаем, что такой код может скрывать подводные камни. Как раз на эту тему Андрей Карпов недавно написал теоретическую статью, приглашаю ознакомиться — "Ошибка настолько проста, что программисты её не замечают".

How C++23 Changes the Way We Write Code — Timur Doumler

CppCon 2022

Это не лекция о C++23 и не разбор его дополнений и улучшений. Автор разбирает совсем немного новых возможностей, которые заметно меняют и улучшают классическую работу С++ программиста. Как std::expected улучшает обработку ошибок, какое огромное влияние std::mdspan окажет на научные вычисления, как deducing this значительно упрощает давно известные идиомы C++, такие как CRTP, и как std::print навсегда изменит то, как мы пишем "Hello World" — всё это собрано в одном докладе.

The Evolution of C++ — A Typescript for C++ — Herb Sutter

CppNow 2023

С++23 завершён, но C++ нет! В этом докладе автор рассказывает о своих личных взглядах на продолжающуюся и очень активную эволюцию C++, об обновлениях его экспериментального компилятора cppfront и о том, почему совместимость важна для дальнейшего успешного развития C++.

6 impossible things — Kevlin Henney

Meeting C++ 2023

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

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

Бонусная глава

Эта глава посвящена прошлогодней конференции С++ Russia. А ещё совсем скоро нас ждёт конференция "С++ Russia 2024", и наша команда примет в ней участие. Приходите на наше выступление и, возможно, вам откроется тайна "Как не стать драконом"!

1. Александр Коботов — "Что следует помнить C++ разработчику об архитектуре процессора"

В докладе автор разбирает для чего в "подкапотном пространстве" процессора кэш, конвейер, векторные инструкции, в чём состоят отличия x86 и ARM, а также каким должен быть код, который способен выжать из процессора все соки, а не ждать сотни циклов, пока загрузится вон тот байт.

2. Константин Владимиров — "Память как концепция в гетерогенных системах"

В докладе Константин рассматривает память, как её понимают в C++ и как её понимают для графики, и показывает много примеров на SYCL.

3. Антон Полухин — "Монолит vs Микросервисы, и Как эффективно работать с последними в C++"

Как эти проблемы преодолевали, к чему пришли, для чего нужен собственный фреймворк userver, а также о его устройстве, рассказывает Антон в своём докладе.

Заключение

На этом заканчивается наша подборка, но не крутые выступления по С++. Есть ли у вас примеры классных докладов? Поделитесь ими в комментариях =)

Наши предыдущие подборки

  1. Топ-10 докладов на С++ конференциях 2019-2022 года

  2. Reddit для программистов

  3. Не исправил, а проработал принятие: как некоторые баги в играх стали фичами

  4. День, когда Скайнет обрёл сознание, и ещё 69 поводов собраться с коллегами. Часть 1

  5. День, когда Скайнет обрёл сознание, и ещё 69 поводов собраться с коллегами. Часть 2

Если хотите поделиться этой статьей с англоязычной аудиторией, то прошу использовать ссылку на перевод: Uliana Grishina. Compilation of gripping C++ conference talks from 2023.

Комментарии (3)


  1. Dmitri-D
    03.05.2024 01:51

    что означает "безопасный" в контексте различных применений C++;

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

    как гарантировать безопасность там, где она необходима;

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

    как заставить разработчиков писать безопасный код.

    Использовать языки, которые распознают и поддерживают безопасные приемы еще на стадии компиляции, т.е. не С++


    1. Tnr88
      03.05.2024 01:51
      +8

      Отвечу коротко - вы пишите полный бред.


    1. CrashLogger
      03.05.2024 01:51

      Безопасность не в языке, а в голове. Нормального разработчика не надо заставлять - он сначала думает, потом пишет. И покрывает все тестами. А обезьяна и на Rust напишет говно.