Доклады конференции CppCon 2014

  • Tutorial
Недавно в городе Белвью (штат Вашингтон) прошла одна из самых больших конференций С++ разработчиков — CppCon 2014. В течение пяти дней ведущие программисты таких компаний как Microsoft, Google, Dropbox, Citrix, Embarcadero, Ubisoft, разработчики стандарта языка, создатели компиляторов С++ и члены комьюнити opensource-продуктов представляли свои доклады, делились мнениями о будущем языка, предлагали новые идеи. Ниже я представлю выборку наиболее понравившихся мне видео с небольшими комментариями от себя. Хочется отметить, что вся конференция просто пропитана духом возрождения С++ в виду распространения стандартов С++11\14, люди рассказывают почему выбор С++ оказался для них верным, как они успешно мигрировали с C#\Java\Objective-C на С++ и не пожалели об этом и т.д.

Удачного просмотра!

Докладчики из Dropbox рассказывают о том, как они разрабатывают на С++ кроссплатформенные мобильные приложения.
Когда-то у Дропбокса были классические мобильные приложения: Java-код для Android и Objetive-C для iOs. Однако со временем команде разработчиков надоело писать одно и то же по 2 раза на разных языках и они пришли к выводу о необходимости создания общей кодовой базы на С++. Со временем оказалось, что какую бы архитектуру не имело приложение (MVC, MVVM или что-нибудь другое), фактически весь код кроме вьюх может быть вынесен в С++. Действительно, на С++ можно реализовать модель данных, контроллеры, бизнес-логику, вспомогательные библиотеки для работы с сетью, базами данных, парсингу и т.д. Всё, что остаётся на долю Java и Objective-C — нарисовать «родные» для данной платформы кнопки\списки\лейбы на вьюхах. И этот подход существенно более прагматичен, чем писать всё дважды.

Первое видео более обзорное, второе более практическое:





Edouard Alligand рассказывает о том, как их команда начала разработку большого мультиплатформенного продукта на С++11 в 2008-ом году (не опечатка!), фокусируясь на том, какие именно плюсы и минусы им дала мультиплатформенность.
Общая мысль доклада в том, что поддержка нескольких платформ может быть не такой уж сложной, если использовать нужные инструменты. Более того, требование компилироваться разными компиляторами и работать под разными ОС (от Линукса и FreeBSD до iOs и Windows) делает разработчика более дисциплинированным, заставляет его понимать, что «неопределённое поведение» может быть по-разному неопределённым на разных платформах и поэтому нужно избегать острых углов. Докладчик рекомендует всем разработчикам сразу писать код на С++ с учётом того, что он может быть скомпилированным под разные платформы, использовать проверенные мультиплатформенные библиотеки (например, Boost), выбирать в качестве билд-системы CMake и т.д.



Rachel Cheng и Michael VanLoon рассказывают о библиотеке Boost — её влиянии на новые стандарты С++, о «мосте» к новым фичам для людей, застравших в силу обстоятельств на старых компиляторах. Первая половина доклада посвящена умным указателям и RAII в С++11 и Boost — хорошая возможность разобраться в теме для тех, кто ещё не в курсе. Вторая часть пробегается по некоторым возможностям Boost — работе с перечислениями, инициализации контейнеров, регулярным выражениям, потоками, сетью. Получилась такая-себе несколько идеализированная ода библиотеке Boost, но библиотека ведь и вправду отличная, так что почему бы и нет.



Gor Nishanov из Microsoft рассказывает об эволюции понятия сопрограммы (coroutine) в C++, возобновляемых функциях в будущем стандарте С++17 и о том, как всё это Microsoft собирается реализовать в своём компиляторе С++. Разговор идёт о том, чем сопрограммы отличаются от потоков, на чём они экономят системные ресурсы, как это всё вписывается в С++, каким образом сопрограммы будут общаться с внешним кодом, а внешний код — с ними.



Jeff Preshing из Ubisoft первые 5 минут презентации играет роль Капитана Очевидность, рассказывая о том, как за последние 10 лет процессоры компьютеров и приставок стали многоядерными, но дальше презентация идёт бодрее и рассказывается о том, как Ubisoft использует многоядерность и многопоточность в своих игровых движках в таких играх как Watch Dogs, Far Cry и Assassin's Creed. Джефф рассказывает о том, из каких компонентов состоит движок игры, как эти компоненты могут работать параллельно, обмениваться сообщениями, совместно использовать одни и те же данные из разных потоков и как всё это выглядит на С++.



Астрофизик Vincent Reverdy из Парижской обсерватории в первой половине доклада пытается минут за 15 объяснить как устроена Вселенная :) Ну вернее, как эту самую Вселенную учёные пытаются симулировать на суперкомпьютерах с как-можно более высокой степенью достоверности. Он рассказывает, что большинство научного софта всё ещё написано на Фортране и порой тяжело использовать преимущества современных архитектур и компиляторов. Дальше говорится о том, какие именно фичи С++ могут быть полезными при написании именно научных программ. Вообще, я бы не сказал, что доклад полезен в плане получения знаний по С++, но даёт неплохое понимание того, что и как делается в современном программировании в сфере науки.



Lenny Maiorani из компании F5 Networks напоминает о том, что наши теоретические представления о скорости работы и потреблении памяти разными типами контейнеров могут существенно отличаться от реальности и для получения максимальной производительности нужно использовать тесты.



Alisdair Meredith из комитета по стандартизации С++ рассказывает о стандарте С++14, фокусируясь на том, как проходило рассмотрение и принятие стандарта, почему были сделаны те или иные решения, что и почему вошло и не вошло в стандарт. От доклада в первые 10 минут немного веет бюрократией, но дальше становится интереснее.



Как известно, все программисты делятся на тех, кто понимает, что такое Unicode и тех, кто �� ��������, ��� ����� Unicode. Именно для второго типа программистов James McNellis (ведущий разработчик из команды Microsoft Visual C++) рассказывает о кодировках, юникоде и о том, как всё это работает в С++ вообще и в Visual C++ от Microsoft в частности. Иронично, конечно, что о важности универсальных кодировок рассказывает разработчик из компании Microsoft, известной в недалёком прошлом своей страстью к велосипедостроению в данной области, но как говорится, лучше поздно, чем никогда.



Ещё один доклад от разработчика из Ubisoft о том, как у них принято писать на С++. Некоторые вещи поражают своей радикальностью (например, никакого RTTI, никаких STL-контейнеров, никакого Boost, использование Visual Studio, но отказ от MSBuild, своя реализация виртуальных функций), но немного подумав, становится понятно, что самая большая гейм-студия в мире, успешно выпускающая ААА-игры, наверное, понимает, что она делает.



John «JT» Thomas из Embarcadero рассказывает о том, как использование CLANG и LLVM сделало их продукт лучше. Честно говоря, весь доклад меня не покидало некое чувство непонимания о чём вообще речь: в качестве CLANG и LLVM и так никто вроде бы не сомневался, а вот в чём преимущество продуктов Embarcadero на их базе так понятно и не стало. Помнится, Delphi и C++ Builder были популярными продуктами лет 10 назад, возможно, в какой-то части программерской вселенной они всё ещё рулят, но лично я от них как-то очень далёк.



Борис Колпаков из Code Synthesis поразмышлял о том, как было бы классно иметь менеджер пакетов для С++. Нельзя не согласиться — было бы классно, но в докладе не было ни рассказа о попытке его создать, ни анализа чужих проектов из этой области. В общем, презентация в стиле «а давайте сделаем NuGet для С++ и добавим в него все-все С++ библиотеки» без каких-либо практических советов и выводов.



Roland Bock из PPRO Financial Ltd рассказал о своих идеях насчёт расширения синтаксиса С++ (параметризации имён полей класса, расширении стандартного типа tuple, CRTP, миксинах).



Совершенно не технический доклад от Jens Weller о различных конференциях С++ разработчиков. Человек посещает их около десятка в год и сам организовывает одну, так что в теме разбирается. Если выбираете, куда бы съездить — можно послушать.



Nate Kohl — создатель cppreference.com (одного из самых популярных сайтов с документацией по С++) рассказывает об истории создании этого сайта, наполнении его контентом, создании пользовательского комьюнити и планах этого сайта на будущее.



James McNellis и Kate Gregory из Microsoft рассказывают о красивом и уродливом коде на С++. В основном говорят достаточно известные вещи о макросах, комментариях, преобразовании типов, декомпозиции кода, велосипедостроении, но в принципе может быть полезно посмотреть и напомнить себе, что код на С++ действительно может быть простым и элегантным.



Доклад Stefanus DuToit из Thalmic Labs я, честно говоря, не столько слушал, сколько смотрел как он проводит презентацию с разработанным его фирмой браслетом Myo, считывающем электрические импульсы с мышц руки для распознавания жестов. Честно говоря, выглядит несколько странно. С одной стороны — браслет действительно распознает жесты типа «листания» для управления презентацией, с другой стороны докладчику приходится 90% времени стараться держать руку неподвижно во избежание ложного срабатывания. В результате рука с браслетом смотрится как прицепленный к плечу протез, натуральность движений существенно теряется. Простите за уход от темы доклада к впечатлениям от браслета, но в этом докладе это показалось мне интереснее доклада.



Остальные доклады можно посмотреть на официальном канале конференции: www.youtube.com/user/CppCon
Инфопульс Украина
Creating Value, Delivering Excellence
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 7

    0
    Хм-м-м… Мне всегда казалось, что разработчики на С++ слишком суровы, чтобы проводить какие-то там конференции. Это всем остальным можно так забавляться. А, пока какие-нибудь PHP'шники проводят очередной кон и развлекаются, брутальные сишники пишут код!
      +3
      Там один из докладов как-раз о конференциях по С++. Их в этом году штук 10 прошло только всемирных, плюс неизвестно-сколько локальных. Поскольку и стандарт С++ пишется всем миром, и компиляторы делаются разными производителями разные, и опенсорс кода на С++ очень много — всем этим людям нужно как-то общаться между собой, вот и конференции.
      +1
      Или вот тут удобно:
      cppcon
        0
        Спасибо за отчёт! Есть интересные выступления, которые стоит посмотреть.
          0
          У Джефа Прешинга блог ещё достаточно интересный.
            +1
            Ох, и когда же это всё смотреть? Почти все ролики длительностью в час.
              +1
              Очень крутой был кейнот:


              Майк затроллил всех как следует :)

              Only users with full accounts can post comments. Log in, please.