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)