
Apa kesamaan yang dimiliki orang-orang ini, selain fakta bahwa mereka semua dikenal di dunia C ++?
- Orang tua Sean
- Eric Niebler
- Marshalllow
- Bryce adelstein lelbach
- Anton Polukhin
- Andrey Davydov
Jawaban: semuanya akan datang ke C ++ Rusia. Sekarang musim panas telah berakhir dan semua orang kembali dari liburan, saatnya untuk menunggu konferensi C ++ besar berikutnya: C ++ Russia 2019 Piter . Ini akan ditangani tidak hanya oleh orang-orang dari daftar ini, tetapi juga oleh banyak pembicara internasional lainnya. 30 laporan, 2 hari penuh mulai pukul 10 pagi hingga 7 malam, tidak ada cerita pengantar dan dokumentasi bacaan tentang suku kata - langsung menjadi hardcore.
Ini ternyata menjadi salah satu konferensi kami yang tercepat dan paling terorganisir secara kualitatif, separuh dari program ini dikenal di musim panas: para pembicara jelas tahu apa yang ingin mereka katakan di C ++ Rusia. Sekarang programnya hampir stabil, dan sekarang saatnya untuk membuka tabir kerahasiaan.
Kami membagi semua laporan menjadi "kategori perencanaan", yang kemudian kami isi dengan topik menarik. Inilah mereka:
- Kemampuan Standar Baru
- Praktis C ++
- Infrastruktur
- Multithreading
- Metaprogramming
- Pemrograman fungsional
Kategori dicantumkan dalam urutan menurun jumlah laporan: dimulai dengan sembilan laporan tentang fitur standar baru, dan berakhir dengan satu-satunya laporan tentang fungsionalitas saat ini - "Penandaan jenis waktu kompilasi" oleh Ivan Chukich. Masih ada beberapa titik putih dalam program yang akan terisi secara harfiah dalam beberapa minggu ke depan. Mari kita lihat apa yang terjadi sebagai hasilnya.
Headliners
Semua pembicara adalah tokoh terkenal di komunitas, menulis tentang mereka bisa tidak ada habisnya. Mari kita bicarakan secara rinci setidaknya tentang orang-orang yang kita daftarkan sebelum kat.
Sean Parent adalah salah satu peneliti dan arsitek terkemuka di divisi ponsel Adobe. Dia telah mengembangkan karier yang cemerlang di perusahaan-perusahaan terkenal di dunia. Pada periode 1988-1993, ia membantu Apple menulis OS terkenal mereka untuk PowerPC, sejak 1993 ia mulai mengembangkan Photoshop, menghabiskan 2009 di Google, mengembangkan ChromeOS, dan kembali ke Adobe. Apa yang bisa diceritakan orang dengan sejarah yang begitu kaya? Saat ini Anda dapat menemukan banyak video di YouTube dengan partisipasinya, misalnya - serangkaian laporan Better Code , yang berbicara sendiri. Ini bukan pertama kalinya kami berada di C ++ Rusia: di awal sejarah konferensi, pada tahun 2015, dialah yang membuat laporan pembukaan pertama , dan pada tahun 2017 kami melakukan wawancara setengah jam dengannya. Semua yang Sean Parent katakan berbeda dalam kedalaman dan elaborasi, itu bukan materi "lihat dan lupakan", tetapi sesuatu yang patut diingat dan kembali lagi dan lagi.
Sekarang dia terbang kepada kami dengan laporan baru dari seri BetterCode: Relationships , dan Anda pasti tidak ingin ketinggalan ini. Itulah sebabnya laporan itu dipilih oleh keynote konferensi - semua peserta akan dapat melihatnya sebelum mereka berpencar ke ruangan yang terpisah.
Keynote kedua dipimpin oleh Eric Niebler . Di sini akan mengakhiri ceritanya, karena baru-baru ini namanya telah dikenal publik berkat Standard Ranges , dan nibloid yang telah menjadi istilah (lihat markup di CppReference ) dinamai menurut namanya. Tapi, secara umum, semua ini hanya hype, dan dia melakukan banyak hal untuk C ++.
Eric adalah anggota aktif Komite Standardisasi C ++, pengembang senior di Facebook, dan pada saat itulah ia mulai terlibat dalam jangkauan. Di masa pra-facebook, ia adalah seorang konsultan, bekerja baik secara individu maupun dengan BoostPro Computing . Dalam dorongan itu, ia tidak hanya menulis beberapa perpustakaan dan bertindak sebagai manajer pelepasan, tetapi juga menjadi anggota Komite Pengarah Peningkatan, yang (sesuai namanya) menangani masalah-masalah pengembangan strategis. Mode Eric menulis kode yang kuat dan sekaligus elegan, mengembangkan abstraksi yang indah (yang, secara umum, Anda dapat melihat dalam rentang ... atau tidak melihat, tergantung pada preferensi). Sama pentingnya, ia dapat menyampaikan pikiran tidak hanya dengan kode, tetapi juga dalam bentuk laporan yang dapat dipahami dan dapat dipahami.
Eric datang dengan pembicaraan "Abstraksi pemersatu untuk async dalam C ++" . Secara singkat tentang masalah: asynchrony di C ++ sekarang di bagian bawah, itu harus diperbaiki. Alat standar seperti janji, futures, utas, kunci, bahkan std::async
- semuanya bekerja dengan tidak efisien, atau hanya rusak, atau keduanya sekaligus. Horor. Lebih buruk lagi, tidak ada cara standar untuk mengetahui dengan pasti di mana pekerjaan harus dilakukan. Namun demikian, kami memiliki banyak C ++ - tugas khusus yang membutuhkannya: algoritma paralel, komputasi heterogen, jaringan dan IO, aliran reaktif ... semua teknologi inti penting yang telah menunggu abstraksi standar selama bertahun-tahun untuk mencerminkan gagasan komputasi asinkron. Dalam laporan ini, Eric akan menggali bersama kami penelitian Komite, di mana mereka menentukan operasi dasar di balik perhitungan asinkron. Kita akan melihat mengapa masa depan dan janji-janji melambat begitu banyak, apa yang merupakan pelaksana, apa yang umum antara panggilan balik dan coroutine, dan bagaimana abstraksi "Tugas" (yang sekarang sedang dipelajari secara aktif di Facebook oleh R&D) dapat membuat revolusi yang sama dalam sinkronisasi yang terjadi dengan munculnya iterator di kode sinkron reguler.
Jika Eric adalah insinyur dan peneliti keren yang jarang berbicara dengan tepat, maka Marshall Clow adalah bintang konferensi internasional. Jika Anda pergi ke YouTube dan memasukkan namanya dalam pencarian , maka YouTube menjadi beranda pribadinya. CppCon, C ++ Sekarang, ACCU, EuroLLVM - semua yang dapat Anda bayangkan. Dan sekarang di sini adalah C ++ Rusia. Menariknya, dengan semua ini, ia bukan hanya penginjil biasa, tetapi C ++ - seorang pengembang dengan 35 tahun pengalaman, penulis asli Boost.Algorithm
(dan umumnya kontributor dorongan selama lebih dari 15 tahun), kepala kelompok kerja perpustakaan di Komite di Komite Standardisasi C ++ dan pengembang utama libc ++ (library standar untuk LLVM). Legenda hidup dan seseorang yang ahli menulis dalam C ++ ketika setengah dari mereka yang membaca teks ini belum lahir.
Marshall akan datang dengan laporan "Hardening the C ++ Standard Template Library" , intinya adalah ini: karena perpustakaan standar digunakan oleh semua orang dalam satu baris, itu harus ditulis dengan sangat baik dan tidak pecah di mana pun. Pembicaraan dikhususkan untuk diskusi tentang teknik dan alat yang membuat libc ++ dari LLVM memenuhi persyaratan ini: debugging, ruang uji dan cakupan, analisis statis dan dinamis, fuzzing. Tentu saja, laporan ini tidak hanya untuk pengembang LLVM, semua orang dapat mengambil ide mereka sendiri dan menarik kesimpulan mereka sendiri.
Bryce Adelstein Lelbach belajar C ++ sedikit kurang dari Marshall, tetapi dia memiliki sesuatu yang mengejutkan. Dia adalah salah satu pemimpin global dalam komunitas C ++. Aktivitas sosialnya adalah bahwa Bryce sekarang menjadi direktur program konferensi C ++ utama - CppCon dan C ++ Sekarang, ketua Kelompok Pengguna C ++ di San Francisco dan Silicon Valley. Dalam Komite Standardisasi, ia berpartisipasi dalam JTC1 / SC22 / WG21, adalah ketua Kelompok Studi Alat (SG15) dan Inkubator Evolusi Perpustakaan (SG18), dan dalam C ++ 17 ia mengerjakan daftar panjang hal-hal (algoritma paralel, pelaksana, masa depan, pengirim / penerima, multidimensi array, modul). Antara lain, Bryce memimpin tim pengembangan CUDA di NVIDIA, kadang-kadang membantu LLVMLinux dan berkomitmen untuk Meningkatkan.
Bryce tiba dengan kuliah tentang "Perpustakaan sinkronisasi C ++ 20" . Sejak C ++ 11 keluar, lebih dari selusin tahun telah berlalu, dunia telah berubah! Pada zaman C ++ 11, prosesor multi-core sudah mapan, tetapi jumlah normal dari core adalah dua atau empat. Semua yang lebih dari sepuluh, seperti orang-orang kuno, ditunjukkan oleh kata "banyak." "Dua," "empat," dan "banyak." Sekarang normal untuk memiliki lusinan tujuan dan tahan dengan penundaan sinkronisasi satu milidetik. Sudah menjadi hal biasa untuk memiliki puluhan dan ratusan utas, dan kata "banyak" sekarang berarti "ratusan ribu." Sepuluh tahun yang lalu, tidak mungkin ada orang yang bisa dengan jelas membayangkan masalah multithreading saat ini. Menggunakan alat tradisional saat ini, kita dihadapkan dengan latensi tinggi yang tidak dapat diterima, atau dengan konten yang tidak dapat diterima untuk menyinkronkan utas. Pustaka C ++ 20 menawarkan solusi baru - primitif ringan yang dapat bekerja dengan ratusan ribu utas. std::atomic::wait
, std::atomic::notify_*
, std::atomic_ref
, std::counting_semaphore
, std::latch
, std::barrier
... Laporan ini dibuat sebagai sekumpulan contoh yang akan kita pelajari cara menggunakan semua alat ini untuk membangun aplikasi modern yang dapat dieksekusi secara paralel pada hampir semua perangkat keras, mulai dari CPU yang tertanam dan server hingga GPU baru.
Pembicara berikutnya adalah pengembang Rusia terkenal Anton Polukhin . Dikenal karena laporan tentang bidang-bidang di mana C ++ dianggap sangat diperlukan dan hal-hal tambahan yang menyenangkan untuk dimiliki dalam C ++. Perwakilan Rusia dalam ISO pada pertemuan internasional kelompok kerja mengenai standardisasi C ++, penulis beberapa proposal yang diterima untuk standar bahasa C ++. Sebagai persiapan untuk konferensi sebelumnya, kami menerbitkan wawancara dengannya di Habré . Secara umum, topik partisipasi Rusia dalam Komite telah cukup banyak dibahas baik di Habré dan di mana-mana (lihat, Yandex bahkan menulis posting tentang ini di VK), dan sekarang jangan membuka topik ini. Anda dapat pergi ke stdcpp.ru dan melihat daftar perwakilan, sekarang adalah: Anton Polukhin, Anton Bikineev dan Alexander Fokin. Anton juga penulis beberapa Boost libraries: TypeIndex, DLL, Stacktrace, aktif terlibat dalam mendukung Any, Conversion, LexicalCast, Variant. Dia telah menulis Buku Panduan Pengembangan Aplikasi C ++ Peningkatan ++ dan Edisi Kedua.
Kali ini, Anton datang dengan laporan "Trik Taksi C ++" (laporan itu disebut demikian, jelas, karena Anton bekerja di Yandex.Taxi). Inti dari trik ini adalah bagaimana menulis solusi yang tampaknya terkenal dengan indah dan lebih efektif - misalnya, dari Pimpl Anda dapat membuang alokasi dinamis dan mempercepat cache.
Mari mencairkan daftar kami dengan seseorang yang tidak bekerja di Komite. Sambut Andrei Davydov dari JetBrains - dia telah bekerja di tim ReSharper C ++ selama tiga tahun sekarang, dan banyak dari kita menggunakan hasil pekerjaannya setiap hari. Dalam laporan itu, Andrei akan berbicara tentang bagaimana penampilan modul akan memengaruhi inti bahasa C ++: jika kompiler digunakan untuk bekerja dengan unit terjemahan satu per satu, maka dengan munculnya modul aturan permainan berubah. Topik-topik berikut akan dibahas:
- apa yang bisa dijangkau entitas dan bagaimana hal itu berbeda dari yang terlihat;
- bagaimana modul mempengaruhi ADL;
- apakah entitas dengan hubungan internal dapat bocor ke modul lain;
- dapat mengimpor kelas pada saat yang sama sebagai selesai, dan tidak lengkap;
- apa yang akan terjadi pada fungsi inline di dunia modular.
Perhatikan bahwa ini bukan laporan pengantar untuk modul untuk pemula. Siswa diharapkan terbiasa dengan prinsip-prinsip modul dan memahami mengapa modul dibutuhkan sama sekali. Berita baiknya adalah, pertama, memahami ini cukup sederhana (hanya google beberapa artikel bagus), dan kedua, C ++ Rusia ini akan memiliki pembicaraan pengantar berpasangan lain tentang modul dari Dmitry Kozhevnikov (juga berfungsi di JetBrains).
Sisa dari program ini
Sangat jelas bahwa tidak mungkin untuk memberi tahu sekitar 30 orang dan 30 laporan mereka dalam pengumuman singkat tentang Habré. Karena itu, semua ini dijelaskan secara lebih rinci di situs resmi konferensi . Penting untuk dicatat bahwa program terus berubah: misalnya, sebagai penyaji, dengan bantuan Komite Program, terus memperbaiki laporan mereka, deskripsi mereka juga diperbarui. Begitu dekat dengan 31 Oktober, semuanya akan terlihat sedikit berbeda, tetapi makna umumnya akan tetap sama.
Laporan bukan segalanya!
Tentu saja, konferensi bukan hanya laporan, tetapi juga lautan komunikasi. Di sinilah kehadiran langsung berbeda dari siaran online, yang juga kami rencanakan untuk dilakukan. Lihatlah daftar di atas - dengan sebagian besar orang ini saya ingin bertemu dan membahas sesuatu yang penting. Kami memiliki kesempatan seperti itu: setelah akhir laporan, semua orang pergi ke area diskusi dan berbicara di sana selama cukup waktu. Pada akhir hari, apa yang disebut sesi BOF diselenggarakan (seperti meja bundar, tetapi hanya semua orang yang berpartisipasi).
Anda bisa saja bertemu orang-orang menarik dari komunitas yang juga datang, tetapi tanpa laporan. Anda dapat menemukan perusahaan yang menarik, belajar sesuatu dari perwakilan mereka dan berpartisipasi dalam kontes. Akan ada berbagai kegiatan sampingan yang sekarang kita pikirkan. Singkatnya, semua itu bisa dibayangkan tentang konferensi besar.
Kelas master
Selain program konferensi utama, juga akan ada kelas master (partisipasi di dalamnya disusun dan dibayar secara terpisah). Mereka akan diadakan sehari sebelum konferensi dan, tidak seperti laporan, masing-masing akan memakan waktu setidaknya beberapa jam. Deskripsi terperinci dan ketentuan partisipasi dalam kelas master dapat ditemukan di situs web resmi .
Anton Polukhin - “C ++ yang Cekatan dan Modern”
Anton adalah pengembang Rusia terkenal, tentang siapa kita berbicara sedikit lebih tinggi dalam artikel ini. Pengalamannya sebagai penulis Boost libraries, peserta dan Komite Standardisasi, serta praktik yang luas, memungkinkannya untuk menulis kode C ++ pintar yang kompeten dan mengajar orang lain untuk melakukannya.
Dalam basis kode besar apa pun, Anda dapat menemukan potongan-potongan kode yang benar-benar tidak dapat dipahami. Sebagai aturan, kode tersebut ditulis untuk memenangkan sedikit dalam kinerja aplikasi ... dan, sebagai aturan, kode tersebut pada prinsipnya tidak diperlukan, karena ia mengoptimalkan bukan apa yang dibutuhkan, tidak di tempat di mana ia dibutuhkan, dan tidak sebagaimana mestinya .
Kelas master akan mulai dengan contoh kecil, di mana Anda akan menemui semua kesalahan umum pengoptimalan prematur. Kemudian dia akan pergi dari dasar-dasar dan mempertimbangkan hal-hal seperti algoritma dan wadah perpustakaan standar (dan bukan hanya yang standar), semantik bergerak dan perilaku yang tak terduga, multithreading. Ini adalah lokakarya yang sepenuhnya praktis menggunakan Google Benchmark dan tugas yang terlihat seperti tugas untuk mengoptimalkan kode tertentu.
Rainer Grimm - “Pemrograman Tertanam dengan C ++ Modern”
Rainer Grimm adalah pelatih pemrograman C ++, Python berpengalaman dan pengembang perangkat lunak dari Jerman. Tertanam adalah salah satu area utama aplikasi C ++ modern. C ++ memungkinkan Anda untuk berkomunikasi secara langsung dengan perangkat keras dan memberikan abstraksi untuk membangun sistem yang kompleks. Di C ++ modern, ada banyak hal yang membantu dengan embedded. Ini adalah hal-hal seperti move-semantic dan constexpr-functions (untuk meningkatkan kinerja), literal yang ditentukan pengguna dan ciri-ciri (untuk sistem yang keamanan maksimumnya kritis), smart pointer dan std::array
(untuk mengurangi kekacauan dengan sumber daya )
Kelas master ini mengajarkan Anda cara lebih baik menggunakan fitur C ++ dalam kaitannya dengan embedded. Secara khusus, ini memberikan jawaban untuk berbagai pertanyaan tentang keterbatasan unik dari sistem tersebut. Workshop ini diajarkan dalam bahasa Inggris.
Pavel Filonov - “Integrasi Berkelanjutan untuk C ++ - Pengembang”
Pavel Filonov percaya bahwa proses pengembangan tidak boleh berakhir setelah komit, oleh karena itu, ia akan menghadirkan kelas master tentang Integrasi Berkelanjutan. Tujuan dari kelas master adalah untuk mengambil langkah selanjutnya menuju integrasi berkesinambungan (CI, Eng. Continuous Integration) dan mengotomatisasi resolusi ketergantungan, perakitan dan pengujian unit untuk semua platform target. Sebagai hasilnya, peserta akan dapat sepenuhnya menggunakan secara independen semua infrastruktur yang diperlukan untuk CI dan menyiapkan proyek C ++ untuk perakitan otomatis dan pengujian unit.
Apa selanjutnya
Dan kemudian Anda harus datang ke C ++ Russia 2019 Piter! Konferensi akan diadakan 31 Oktober - 1 November di St. Petersburg. Tiket dapat dibeli di situs web resmi . Anda juga dapat berkenalan secara rinci dengan versi program saat ini (saya ingat bahwa itu terus berubah).
Catatan penting tentang harga dan diskon. Sistem tiket dapat mengeluarkan tiket dari empat jenis: Akademik, Pribadi, Standar, dan Online. Mengapa ini penting: jika Anda membeli tiket sendiri, maka biayanya akan jauh lebih murah daripada tiket untuk perusahaan. Dan jika Anda seorang siswa, mahasiswa pascasarjana atau guru (dan ada dokumen yang sesuai untuk konfirmasi), maka diskonnya sangat mengesankan. Kondisi terperinci, tentu saja, harus dibaca di situs - semua yang ditulis di atas hanya untuk informasi.
Untuk mengantisipasi C ++ Russia 2019 Piter, Anda dapat menonton rekaman dari dua konferensi sebelumnya yang diadakan musim semi ini di Moskow dan Novosibirsk. Secara umum, semua catatan selama beberapa tahun terakhir rapi di saluran YouTube kami. Dengan demikian, Anda dapat menilai kualitas laporan secara visual.
Temui aku di C ++ Russia 2019 Piter!