Обзор программы C++ Russia 2019. Что день грядущий нам готовит?

в 14:19, , рубрики: c++, C++ Russia, c++ russia 2019, Блог компании JUG.ru Group, высокая производительность, Программирование, функциональное программирование

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

  • Современные и новые возможности языка C++
  • Функциональное программирование
  • Метапрограммирование
  • Многопоточность, параллелизм, асинхронность и все-все-все
  • Как жить с имеющимися инструментами

Меньше чем через месяц пройдёт конференция, которая старается ответить на эти вопросы: C++ Russia 2019. Давайте коротко взглянем, как это у неё получится.

Обзор программы C++ Russia 2019. Что день грядущий нам готовит? - 1

Современные и новые возможности языка C++

Здесь нам очень повезло сразу по нескольким направлениям. Во-первых, C++ активно улучшается, набор важных и полезных инструментов продолжает пополняться. Не всем языкам так повезло — например, в вышедшей недавно Java 12 вообще не было ни одной production ready фичи языка или серьезного изменения в библиотеках.

С другой стороны, все ли чётко представляют в голове всеобщую картину всех улучшений C++? Уверены ли вы, что используете свои инструменты правильно, и это не аукнется в будущем?

Обзор программы C++ Russia 2019. Что день грядущий нам готовит? - 2

И тут оказывается, что у нас на конференции оба кейноута (открывающих и закрывающих доклада) — от людей, участвующих в комитете годами. У них работа такая — держать в голове картину всего. Кроме отличных докладов с ними можно ещё и пообщаться в дискуссионной зоне.

Обзор программы C++ Russia 2019. Что день грядущий нам готовит? - 3

Обзор программы C++ Russia 2019. Что день грядущий нам готовит? - 4 Первый — Антон Полухин с рассказом о сферах, где C++ считается незаменимым, и дополнительных вещах, которые неплохо бы иметь в C++. С ним мы недавно публиковали интервью на Хабре. Вообще, тема участия россиян в комитете уже довольно широко обсуждалась и на Хабре, и везде (глядите, Яндекс даже в VK написал про это пост). Можно сходить stdcpp.ru и увидеть список представителей, сейчас это: Антон Полухин, Антон Бикинеев и Александр Фокин.

Обзор программы C++ Russia 2019. Что день грядущий нам готовит? - 5 Второй участник — это Nicolai Josuttis. Автор тех самых книг «The C++ Standard Library» и «C++ Templates» и член комитета стандартизации в течение почти двадцати лет. Его доклад, наверное, будет одним из самых топовых по теме «будущего и современного»: «C++17 — the biggest traps» призван рассказать о проблемах, лежащей за ними архитектуре, кто виноват и что делать.

Функциональное программирование

Следующая тема, от которой горит часть сообщества — ФП. На Хабре эта тема представлена достаточно широко.

Не все в сообществе считают, что игра стоит свеч. Ещё не отгорели костры по поводу отладочной производительности ренжей и статьи Араса Пранкевичиуса. Многие всё ещё задаются вопросами, что такое монады, зачем они нужны и требуют статьи с яркими картинками. Кто-то уже точит кинжал и ворчит «превратили мой чудесный C++ в Haskell какой-то».

Одна из важнейших проблем с ФП в том, что по нему не так много специалистов. Все его любят изучать, а вот чтобы реально применять — с этим проблемы. Есть полная профнепригодность, когда человек искренне верит, что понимает ФП, но не может написать с помощью него Hello World. Есть всякие крайности, когда человек, ознакомившийся с наличием лямбд сразу же считает себя царём функционального программирования. Или наоборот — перед написанием хэлловорлда, он удаляется в пещеру на заучивание наизусть «Categories for the Working Mathematician» и все книги и методички Окасаки с начала времён.

Пожалуйста, не уходите по ссылкам читать эти книги. Вначале надо дочитать этот пост и сходить на конференцию.

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

Александр расскажет про монадические парсеры. Иван расскажет про «Move-only C++ design» и проведёт один из трёх больших тренингов«Applied functional programming in C++».

А ещё есть «Higher-order functions and function_ref» от Vittorio Romeo из Bloomberg и «Postmodern immutable data structures» от Juan Pedro Bolívar Puente. Какой такой postmodern? А вот приходите и узнаете.

Метапрограммирование

Метапрограммирование и ФП ходят рука об руку, но ситуация тут прямо противоположная. Если в ФП мы изучаем, как бы это применить на практике, то в мета программировании образовалось огромное количество практической информации, которую нужно систематизировать, осознать и отточить свои навыки применительно к собственным задачам.

На C++ Russia есть целый большой блок, посвященный этой теме:

Каждый доклад так или иначе интересен, и если начать его раскрывать, то никакого хабрапоста не хватит. Например, последний доклад игровые движки: в геймдеве совершенно свои требования ко всему стеку разработки, от инструментов до перформанса STL, а тут вам в руки в руки попался живой разработчик движка Encore для игры World of Tanks, который расскажет про Boost.Python, рефлексию параметров материалов для 3D-моделей и прочие специфические вещи. В общем, стоит внимательно прочитать описания и понять, куда вы хотите пойти.

Многопоточность, параллелизм, асинхронность и все-все-все

Несмотря на то, что про это нет какого-то выделенного блока на десять докладов, эти темы так или иначе проходят по всем остальным докладам. Например, говоря про ФП, всегда интересно — насколько ФП помогает или усложняет писать многопоточность.

И хотя модель выполнения задаёт отдельную координату глубины всех остальных докладов, будет и парочка специализированных вещей: «Concurrency and parallelism in C++17 and C++20/23» от вероятно, известного вам Гримма Рейнера, и «Асинхронная разработка на C++».

Почему именно асинхронщина? В последнее время мир очень продвинулся в этом направлении, встроенные средства работы с асинхронностью появляются во всех языках из топа TIOBE, и C++ не оказался исключением, например TS C++ Extensions for Concurrency. Как отделить зерна от плевел, когда некоторые евангелисты асинхронности пытаются продать нам асинхронность как самоценность? На конференциях по JavaScript и Java «асинхронные» доклады иногда занимают треть программы. У нас же неплохо иметь хотя бы один хороший доклад по теме, именно этим и займётся Павел Новиков из Align Technologies.

Как жить с имеющимися инструментами

Остальные доклады в программе не входят в перечисленные выше категории, но сами по себе являются маленькими жемчужинами. Например, тема DevOps сейчас не менее горяча, чем описанная выше асинхронщина. Как вы должно быть знаете, «девопс» — не человек и не профессия, но культура. И культура эта строится на инструментах, с частью которых у нас всё ещё есть реальная боль. Несмотря на то, что сам C++ быстр и как молния, его сборка медленная как черепаха, а классические инструменты, на которые должна бы полагаться культура DevOps — сложные и зачастую ненадёжные. Имеется в виду такие вещи как инструменты распределённой сборки, способы линковки, несчастные модули. Виктор Кирилов выступит с докладом «The hitchhiker's guide to faster builds» и возможно, немного поможет разобраться с этой болью.

Какой-то вот такой обзор получился. Что я забыл? Умные указатели? Да, и они у нас есть, целых два доклада (раз, два). Чего только нет на C++ Russia.

Тренинги

Если обычных докладов недостаточно, у нас есть полномасшатбные тренинги. Каждый из них продлится много часов, коснётся одной конкретной темы, и поэтому одновременно с докладами их не провести. Они состоятся за один день до основной программы, то есть 18 апреля.

Описания есть по ссылкам. Если вы пришли с главной страницы тренингов — щёлкайте кнопки «Подробнее» — именно там выбирается билет, и там написано, что нужно установить на свой ноутбук.

Следующие шаги

Сетка докладов пока не окончательная. Всё-таки, ещё месяц остался (конференция пройдёт как положено, 19-20 апреля). Если вы — участник, то есть просьба — проверьте почту, мы вам опрос прислали. Там надо отметить доклады, на которые хочется пойти. Этот опрос вполне интерактивный, ответы повлияют на распределение докладов по залам.

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

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

Автор: Sergey Platonov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js