CppCon 2016: wybrane wykłady i prelekcje

tech • 910 słów • 5 minut czytania

W drugiej połowie września odbyła się tegoroczna wielka konferencja dla sympatyków, twórców i użytkowników, czyli programistów, języka C++. Mowa tutaj oczywiście o CppCon-ie, największym evencie na świecie poświęconym C++, organizowanej przez społeczność dla społeczności.

www.youtube.com/watch?v=ifX-0neqCVc

Nie jestem na bieżąco, ale nie dawno~~ wczoraj pojawiła się informacja, że wszystkie wykłady i talki pojawiły się już w formie video na kanale Youtube-owym konferencji. Od pewnego czasu także pojawiały się tweety (#CppCon) z dodawanymi na bieżąco materiami, rozpowszechniane przez różne znane i mniej znane osoby czy organizacje. Sam kilka tweetów wrzucałem zaraz po obejrzeniu kilku ciekawych wykładów jakie mnie szczególnie zainteresowały. Dlatego pomyślałem, że zrobię sobie tutaj małą listę obejrzanych i planowanych do obejrzenia.

Polecane prelekcje

Poniżej kilka wybranych przeze mnie prelekcji, które moim zdaniem okazały się bardzo interesujące i godne polecenia, nie mówiąc już o zapoznaniu się z nimi. Kilka ociera się o optymalizacje, wydajność i niskopoziomowe bebechy, czyli coś co mnie aktualnie nieco bardziej jara, szczególnie jeśli można to połączyć w ładny modern-cpp.

Bjarne Stroustrup: The Evolution of C++ Past, Present and Future

www.youtube.com/watch?v=_wzc7a3McOs

Bardziej filozoficzna rozmowa, niż techniczny wykład, ojca C++, głównie o przeszłości, przyszłości i kierunku ewolucji w jakiej zmierza rozwój języka C++. To wystąpienie Stroustrupa kojarzy mi się z jego starą książką “Projektowanie i rozwój języka C++”, kto czytał pewnie nie będzie zawiedziony.

Jason Turner: Rich Code for Tiny Computers: A Simple Commodore 64 Game in C++17

www.youtube.com/watch?v=zBkNBP00wJE

Jason ostatnio bawi się starym poczciwym 8-bitowym Commodorkiem C64 dlatego w swoim wystąpieniu pokazuje jak z wykorzystaniem C++ napisać prostą grę na tą platformę - nieśmiertelnego Ponga!

Timur Doumler: Want fast C++? Know your hardware!

www.youtube.com/watch?v=BP6NxVxDQIs

Nie jest jakimś nowym odkryciem fakt, że znając swój sprzęt jesteś w stanie więcej z niego wykrzesać i stworzyć bardzo wydajny kod. Mimo szybkiego rozwoju narzędzi i języka C++ dobre posługiwanie się nimi nie wystarczy. Autor stara pokazać się co programista C++ powinien wiedzieć o sprzęcie i architekturze oraz jak pisać w modern C++ kod, który będzie cache-friendly, pipeline-friendly i well-vectorisable.

Pablo Halpern: Introduction to Vector Parallelism

www.youtube.com/watch?v=h6Q-5Q2N5ck

Pablo wprowadza w świat równoległego programowania z wykorzystaniem wektoryzacji. Z naciskiem, jak w C++ osiągnąć optymalne wykorzystanie możliwości drzemiące w sprzęcie, czyli rozszerzeniach SSE, AVX. Większość obecnych kompilatorów bez problemu wykorzystuje instrukcje SIMD dostępne na danej platformie i potrafi z automatu zwektoryzować pewne fragmenty kodu, ale bez odpowiedniego podejścia i narzędzi nie zawsze da się osiągnąć zadowalające rezultaty.

Nicolas Guillemot: SPMD Programming Using C++ and ISPC

www.youtube.com/watch?v=UgaQCg-0ZoU

Nicolas kontynuuje temat SIMD i wektoryzacji z wykorzystaniem eleganckiej techniki równoległego programowania zwanego SMPD. Szybko wprowadza w świat SMPD i język programowania ISPC wraz z prezentacją jak ta technika jest wykorzystywana w programowaniu GPU na AMD (GCN). Oczywiście kod SMPD można bezpośredni tworzyć w C++.

Vittorio Romeo Implementing ‘static’ control flow in C++14

www.youtube.com/watch?v=aXSsUqVSe2k

Statyczna kontrola przepływu kodu (? ciężko przetłumaczyć static control flow) w czasie kompilacji! Implementacja static_if i static_for w C++14 oraz porównanie z istniejącą propozycją static_if i zaakceptowanej ostatnio w C++17 konstrukcji constexpr_if.

Jason Turner: Practical Performance Practices

www.youtube.com/watch?v=uzF4u9KgUWI

Jason przedstawia kilka prostych i praktycznych reguł, które znacznie mogą poprawić wydajność kodu w C++. Może nie wszystko jest nowe i odkrywcze, ale warto pamietać i poznać nowe mechanizmy ;)

Michael Caisse: Implementing a Modern C++ MQTT Client for Embedded Devices

www.youtube.com/watch?v=t3O7pio2B20

Ciekawie o MQTT szczególnie w kontekście małych, embedowanych urządzeń. Szczególnie tutaj dobra, lekka biblioteka kliencka MQTT napisana w nowoczesnym C++ byłaby bardzo przydatna. Michael postanowił zmierzyć się z tym tematem.

Warte poznania

Lista ciekawych i interesujących materiałów, na które warto rzucić okiem (według mojego oceny).

  • Herb Sutter: [Leak-Freedom in C++... By Default](http://www.youtube.com/watch?v=JfmTagWcqoE)
  • Jackie Kay: [Lessons Learned From An Embedded RTPS in Modern C++](http://www.youtube.com/watch?v=mresWGsVHj0)
  • Tim Haines: [Improving Performance Through Compiler Switches...](http://www.youtube.com/watch?v=w5Z4JlMJ1VQ)
  • Roland Bock: [How to test static_assert?](http://www.youtube.com/watch?v=wTmAJAk7WV4)
  • Michał Dominiak: [Variadic expansion in examples](http://www.youtube.com/watch?v=Os5YLB5D2BU) (polski akcent)

Do obejrzenia

Mała lista todo, z wykładami wydającymi się ciekawe, ale z braku czasu jeszcze nie mogłem tego sprawdzić. Może wkrótce ;)

  • JF Bastien: [No Sane Compiler Would Optimize Atomics](http://www.youtube.com/watch?v=IB57wIf9W1k)
  • Bryce Adelstein Lelbach: [The C++17 Parallel Algorithms Library and Beyond](http://www.youtube.com/watch?v=Vck6kzWjY88)
  • Andy Bond: [AAAARGH!? Adopting Almost Always Auto Reinforces Good Habits!?](http://www.youtube.com/watch?v=ZCGyvPDM0YY)
  • Alfred Bratterud: #include : from bootloader to REST API with the new C++
  • Dietmar Kühl: [Constant Fun](http://www.youtube.com/watch?v=xWmdcvTedbc)
  • Michael Spencer: [My Little Optimizer: Undefined Behavior is Magic](http://www.youtube.com/watch?v=g7entxbQOCc)
  • Chandler Carruth: [High Performance Code 201: Hybrid Data Structures](http://www.youtube.com/watch?v=vElZc6zSIXM)
  • James McNellis: [Introduction to C++ Coroutines](http://www.youtube.com/watch?v=ZTqHjjm86Bw)
  • Anthony Williams: [The Continuing Future of C++ Concurrency](http://www.youtube.com/watch?v=FaHJOkOrfNo)
  • Matt P. Dziubinski: [Computer Architecture, C++, and High Performance](http://www.youtube.com/watch?v=fMvO0Mcq894)
  • Joel Falcou: [Designing C++ portable SIMD support](http://www.youtube.com/watch?v=2HsLsTRxfbA)
  • John Bandela: [Channels - An alternative to callbacks and futures](http://www.youtube.com/watch?v=N3CkQu39j5I)
  • Abel Mathew: [Debuggability](http://www.youtube.com/watch?v=EjwN7Gf8JIs)
  • Timur Doumler: [Readable C++](http://www.youtube.com/watch?v=zUVQhcu32rg)
  • Honggyu Kim: [uftrace: A function graph tracer for C/C++ userspace programs](http://www.youtube.com/watch?v=LNav5qvyK7I)
  • Dan Higgins: [ombine Lambdas and weak_ptrs to make concurrency easy](http://www.youtube.com/watch?v=fEnnmpdZllQ)
  • Ben Deane: [A Static Alternative to Virtual Functions, Using Expression SFINAE](http://www.youtube.com/watch?v=8jbt-5Qub9E)

Wszystkie materiały można znaleźć na youtube-owym kanale CppCon-a, w playliście CppCon 2016 i CppCon 2016 Lightning Talks, a za niedługo powinny także pojawić się na msdn-owym Channel9.

Swoją drogą chyba muszę dodać do swojej listy todo przejrzenie także materiałów z ubiegłych lat, bo o ile pamiętam, za bardzo tego nie robiłem. A na dodatek jest jeszcze wiele innych eventów i okazji, gdzie powstają wartościowe materiały…

Zachęcam wszystkich związanych w jakimś stopniu z C++ i programowaniem do przejrzenia list i zapoznania się z wybranymi materiałami video. Poznanie i obejrzenie wszystkich to nie lada wyzwanie, ale zawsze można posłuchać w drodze do pracy, na urlop, lub w wolnej chwili ;)

[Notatka w ciągłej aktualizacji, materiałów dużo, więc potrzeba czasu na zapoznanie się z wszystkim co wydaje się intersujące…]

Komentarze (0)

Dodaj komentarz

/dozwolony markdown/

/nie zostanie opublikowany/