Konferensi C ++ Russia sejauh ini merupakan konferensi tabung yang paling parah dan pada waktu yang sama belakangan ini. Itu diadakan di Taman Kongres Hotel Ukraina di Moskow dan mengumpulkan audiensi lebih dari enam ratus orang.
Seperti yang dikatakan salah satu kawan afterparty: "Saya sudah mencoba belajar C ++ dari sekolah, tetapi saya terus-menerus menemukan sesuatu yang baru." Di sini, hampir setiap laporan berbicara tentang sesuatu yang baru. Terkadang - tentang sesuatu yang benar-benar mengejutkan yang akan tetap ada bersama Anda.
C ++ Rusia selalu dibedakan dengan kehadiran pembicara khusus dan laporan khusus, dan kali ini tidak terkecuali. Mari kita lihat apa yang terjadi pada dua hari yang sibuk ini.

Video dan foto
Banyak orang pergi ke artikel semacam itu untuk mengajukan dua pertanyaan klasik: "Kapan video akan dibuat?" dan "Kapan foto-foto itu dibuat?"
Rekaman laporan tersedia untuk semua peserta segera setelah mengisi formulir umpan balik. Setelah sekitar satu bulan, pada tautan yang sama, semua video akan dimuat ulang , tetapi dengan kualitas terbaik. Kualitas yang sekarang bagus, tetapi bisa lebih baik lagi.
Kesempatan untuk mengisi umpan balik akan ditutup pada hari Sabtu ini pukul 23:59 . Perlu tepat waktu!
Tetapi mereka yang tidak menghadiri konferensi akan menunggu untuk merekam laporan lebih lama. Kemungkinan besar, kami akan mempublikasikannya lebih dekat dengan tanggal C ++ Rusia berikutnya.
Foto peserta sudah ada di VKontakte . Daftar foto juga akan diisi ulang, jadi yang terbaik berlangganan seluruh grup sekaligus.
Lingkup
Seperti yang pernah kami harapkan, semua laporan dapat dibagi secara kondisional ke dalam kategori:
- Fitur modern dan baru dari bahasa C ++;
- Pemrograman fungsional;
- Metaprogramming;
- Multithreading, concurrency, asynchrony dan all-all-all;
- Cara hidup dengan alat yang ada.

Membuat jalan melalui konferensi, semua orang harus mengatur penghancur nomor tertentu dan mencari tahu apa yang ingin Anda berpartisipasi dalam hidup dan apa yang ingin Anda lihat dalam rekaman.
Ada beberapa pendekatan untuk melakukan perjalanan melalui program ini. Dalam satu, Anda memilih antara topik menarik. Di lain, Anda pergi ke pembicara tertentu yang Anda tahu yang dijamin untuk menceritakan topik yang menarik. Lebih jarang, orang pergi untuk mendengarkan perwakilan dari perusahaan tertentu.
Saya memiliki strategi yang sangat sederhana: kami memilih topik tentang kompiler, metaprogramming dan permainan, dan di dalamnya kami pergi ke pembicara terkenal. Mudah untuk memilih di dalam strategi seperti itu.
Untuk pengulas dalam rekaman, seluruh program tidak hanya tinggal di situs , tetapi juga dilengkapi dengan slide. Anda dapat melalui program ini lagi, sekarang memilih laporan tentang prinsip lain, dan mengatur sendiri, seolah-olah, konferensi kedua.
Pluralisme pendapat dan BOF
Jelas bahwa tidak semua orang tertarik pada semuanya pada saat yang bersamaan. Terkadang terlihat sangat cerah. Sebagai contoh, pada sesi BOF pada topik "C ++ terhadap semua orang," salah satu peserta menyarankan untuk membahas C ++ Enterprise Edition, dan sebagian audiens tidak segera memahaminya. Sebaliknya, sangat aneh bagi saya untuk mendengar mimpi tentang bagaimana dalam teknologi lain (Golang, JS dan Java, di mana, untuk sesaat, saya mengerti sesuatu) semuanya cerah - tidak benar-benar seperti itu!

Sangat menarik bahwa kami datang ke laporan di pagi hari (jelas), tetapi kami hanya dapat sepenuhnya memahami posisi kaki di sore hari.
Berbicara tentang sesi BOF: mereka ternyata sangat baik. Bagi mereka yang tiba-tiba lupa, BOF adalah sesuatu seperti "meja bundar" malam, tetapi tanpa meja dan pembicara - hanya moderator dan peserta. Meskipun awalnya tema hollywood "C ++ terhadap semua orang," kami berhasil tidak hanya untuk tidak saling bertarung, tetapi terus berkomunikasi untuk waktu yang lama setelah penyelesaian resmi. Lebih tepatnya, sampai penutupan situs, ketika pemerintah datang untuk kami dan meminta untuk mentransfer diskusi ke tempat lain (beberapa melakukannya, melanjutkan di bar berikutnya).
Tentu saja, saya tidak berada di BOF kedua, tetapi menilai dari cara audiensi bergabung, semuanya ternyata juga bagus di sana. Sesuatu seperti itu, tidak lazim atau semacamnya, lihat saja foto ini.

Masalah dalam menulis habrapost tentang konferensi itu banyak hal. Jika Anda mulai membuat daftar semua pembicara, semua sponsor, bawalah foto setiap hal keren di setiap stand - pos ini tidak akan pernah berakhir. Setiap orang yang disebutkan di sini tiba di sini secara kebetulan, dan bukan berdasarkan prinsip yang adil.
Penemuan
Sebagai tuan rumah siaran online, saya tidak pernah bisa menonton seluruh laporan dari awal hingga akhir. Namun, ini juga memungkinkan untuk mengunjungi lebih dari satu laporan di dalam slot, yang cukup spesifik. Hal yang sama berlaku untuk semua orang yang membuat Anda liburan - misalnya, pembuat stand di stan perusahaan.
Tetapi ada beberapa saat ketika semua peserta berkumpul pada waktu yang sama, dan tidak ada pilihan - keynote, membuka dan menutup.
Pada pembukaan, saya senang bahwa Sergey Platonov sermp dan Andrey Dmitriev real_ales dari Grup JUG.ru berada di panggung yang sama. Sekarang konferensi ada di tangan banyak orang, dan Sergei mengambil peran direktur program yang bangga dan paling penting dalam proses ini. Raja itu hidup, hiduplah raja! :-)

Membuka keynote
Poin lain yang kita semua lihat dan yang bisa kita duga. Dipandu oleh Nicolai Josuttis, penulis The C ++ Standard Library dan C ++ Templates.

Bagi sebagian orang, buku-buku semacam itu dianggap sebagai teks suci dan pengetahuan yang diberikan di atas. Seseorang, sebaliknya, skeptis bahwa masa lalu yang baik ketika buku ditulis dan tidak ada preferensi tidak begitu tua, tidak begitu baik, dan penulis mereka harus dianggap dengan kecurigaan pada 2019.
Dan di sini kita melihat Nikolai dengan yang lain tidak tahan tentang "C ++ modern" - dan tampaknya ini adalah salah satu laporan paling masuk akal tentang topik tersebut. Mungkin, entah bagaimana itu mempengaruhi bahwa ia telah menjadi anggota komite standardisasi selama hampir dua puluh tahun. Selama tahun ini, kami terkadang membuat ringkasan teks dan transkrip laporan untuk Habr, dan sepertinya ini adalah kandidat pertama untuk analisis terperinci.
Ini adalah laporan yang meninggalkan saya dengan kekosongan (menyenangkan?) Dalam jiwa saya. Faktanya adalah bahwa jika saya melihat beberapa jenis kode C ++, maka biasanya sesuatu dalam C ++ 98 dalam gaya "C dengan kelas", dan ada tertulis, meskipun sangat menjijikkan dalam penampilan, tetapi sesederhana dan seringkah mungkin. Laporan Oleg tidak seperti itu. Dalam laporan ini, Oleg membahas masalah bagaimana menulis kode untuk bekerja dengan daftar jenis, mirip dengan Boost.Hana.

Seberapa jauh Anda bersedia untuk menulis kode yang baik - terima kasih yang baik untuk metaprogramming? Dan apa yang akan terjadi pada kode ini di masa depan, apakah pencipta standar benar-benar berpikir dan peduli tentang cara Anda menggunakan? Banyak sekali pertanyaan.
Saya melihat laporan ini hanya karena ini tentang mesin permainan dan Wargaming. Saya pikir banyak pengembang pergi ke pemrograman justru karena mereka bermain game di masa kecil dan ingin melakukan hal yang sama. Dan di sini kita memiliki pengembang langsung dari bagian klien dari World of Tanks - yaitu, hanya bagian di mana semua hal yang paling menarik adalah seperti geometri. Ini adalah pembicaraan lain tentang metaprogramming, kali ini tentang refleksi fungsi asli dengan Python dan mengapa Boost.Python tidak diperlukan.

Secara umum, menulis program dalam beberapa bahasa sekaligus adalah pertanyaan teoretis dan praktis yang sangat menarik, yang dapat dipertimbangkan dari sudut pandang yang sangat berbeda. Setiap kali Anda menjadi sadar akan semakin banyak metode menyimpang yang memungkinkan Anda melakukan hal-hal yang semakin canggih. Sebagai contoh, cinta terakhir saya adalah GraalVM, mesin virtual polyglot yang memungkinkan Anda untuk menulis dalam C ++ dengan menyisipkan di Python atau dengan Python dengan menyisipkan di C ++, dan tidak mengherankan bahwa saya terjebak dalam laporan ini seolah-olah dengan liter lem "Momen".
Pertanyaan utama untuk pengembang bukanlah perangkat lunak pengguna akhir, tetapi perpustakaan - "mengapa." Mengapa pengguna harus menggunakan apa yang Anda hasilkan. Dalam hal ini, Anton memberikan penjelasan yang baik: hampir semua mesin game dibangun berdasarkan interpretasi konten game dan refleksi struktur internal untuk mengatur umpan balik untuk objek game dan logika game, dan kita membutuhkan Python, dan di sini kita dapat berbalik dalam pertumbuhan penuh!

Saingan laporan ini adalah reaktivitas dan inisialisasi. Seorang kawan mengatakan bahwa dia tidak punya pilihan dalam slot ini - kita harus pergi ke reactivschina. Saya hanya tidak punya pilihan - Anda harus pergi ke kompiler.
Ingat komentar sebelumnya tentang pertanyaan "mengapa?" Misalnya, di sini Anda melihat sistem kompatibilitas yang paling keren dengan peningkatan toolchain, dan kemudian bos bertanya - mengapa? Tentu saja itu sebabnya!

Membenarkan nilai pekerjaan untuk kepemimpinan, penggunaan Conan (kami di BOF menemukan bahwa seseorang tidak tahu tentang keberadaannya sama sekali!), Peningkatan Visual Studio dan masalah reproduktifitas, pembaruan di C ++ 17 - banyak peretasan sepanjang jalur memperkenalkan fitur keren .

Namun, secara umum, menarik bagaimana dua orang pada saat yang sama dapat melakukan laporan yang baik. Ini adalah format yang sangat tidak populer karena sangat menyulitkan persiapan untuk speaker - biaya protokol dan sinkronisasi. Bagus sekali.
Ivan Čukić, “Desain C ++ yang hanya bergerak”

Sepanjang hidup saya, saya telah menggunakan KDE (kecuali pada kesempatan langka ketika saya harus melewatkan Xfce di atas FreeNX). Saya ingat bagaimana plasma jatuh, dan kemudian berhenti. Kadang-kadang Anda menghabiskan malam panjang berbicara dengan pengembang KDE imajiner mencoba melakukan sesuatu yang tidak biasa. Sebaliknya, saya tidak mengeluh tentang KDE - begitu banyak upaya telah dikeluarkan di dalamnya karena saya sangat menyukainya. Dan sekarang seorang pria datang ke konferensi yang lebih berupaya daripada Anda . Sebagian besar karena dia bukan pengguna, tetapi pengembang Plasma dan Kegiatan.

Oh ya, tentang laporannya. Ini adalah laporan "semua orang perlu tahu", seperti yang dilakukan Nicolai Josuttis. Namanya berubah pada saat terakhir. Awalnya, itu hanya "Move-only C ++ design", tetapi menjadi "Move-only C ++ design - Bagian I". Ini karena topik yang dimaksud sangat besar dan terus bertambah. Ivan menekankan bahwa tidak baik untuk menyebutkan laporan "Bagian I" karena "Bagian II" biasanya tidak pernah terjadi. Tapi di sini jelas bahwa informasi itu mudah diketik menjadi beberapa bagian lagi. Ivan tidak membatasi dirinya untuk mendeskripsikan fitur bahasa (seperti konsep, dll. - yah, Anda mengerti), tetapi pada titik tertentu ia menyingsingkan lengan bajunya, menyelidiki masalah kinerja, dan sisanya dari laporan tersebut pergi ke Godbolt dengan daftar assembler untuk setengahnya. layar. Lima belas menit dialokasikan setelah laporan untuk pertanyaan-pertanyaan itu sepenuhnya dihabiskan. Secara umum, ini sepertinya menjadi topik yang sangat panas.
Alexander Granin, Parsers Monadic
Secara umum, dengan pemrograman fungsional entah bagaimana sedih. Baru-baru ini saya memikirkan artikel apa yang harus diterjemahkan ke Habr, membaca blog acak dengan Hackernews, seru. Ada sekelompok pemimpin yang tidak mengerti apa-apa dalam FP, tetapi berusaha mati-matian untuk berpura-pura mengerti dengan menggabungkan kata-kata pintar yang langka dalam urutan yang berbeda, dengan harapan seseorang akan membelinya. Mereka terkadang menemukan diri mereka sendiri ketika mereka menyalin kata-kata dari Wikipedia dengan urutan yang salah. Ada kelompok yang, sebaliknya, mengerti, tetapi telah dibakar oleh pengalaman sebelumnya dalam mencoba menjelaskan, dan karena itu pergi dengan kata-kata umum dan menarik presentasi yang indah. Memisahkan beberapa dari yang lain itu sulit, terutama ketika Anda sendiri tidak mengerti. Baik ini dan itu dalam bentuk presentasi menyerupai sampah langka, dari mana tidak jelas apakah penulis dapat menulis setidaknya Todo-List dengan antarmuka web.
Terhadap latar belakang ini, "Parsers Monadic" Alexander - menghirup udara. Pertama, presenter dapat memprogram di Haskell dan melakukan ini secara profesional. Kedua, ini adalah narasi yang koheren dengan slide yang bersih dan indah yang diisi bukan dengan memo internet, tetapi dengan kode. Ketiga, semuanya jelas bahwa itu sangat berharga.

Laporan ini memeriksa parser monadik: bagaimana pendekatan ini berbeda dari parsing jenis lain (parser kombinatorial ala Boost :: Spirit, generator parser, solusi ad hoc seperti melonjaknya mesin negara hingga, dll.), Apa kelebihan dan kekurangannya dan apa saja manifestasi dari konsep-konsep penting seperti pemrograman fungsional sebagai functor, functor aplikatif, dan monad. Secara umum, semua yang Anda inginkan (dan tidak ingin) tahu tentang topik di sana.
Viktor Kirilov, “Panduan menumpang untuk membangun lebih cepat”
Ketika Anda datang (atau bahkan melihat keluar dari sudut mata Anda) di C ++ setelah pengalaman dengan teknologi lain, itu menjadi sedikit menyeramkan karena kecepatan perakitan. Setelah saya menulis artikel tentang Habr, bagaimana saya men-debug browser Chromium, dan masalah utama saya bukanlah kompleksitas tugas (tugasnya sangat sederhana), tetapi Chromium dapat dirakit berjam-jam. Jika Anda terbiasa dengan JavaScript atau Java, setelah mengubah beberapa huruf dalam kode, segera mulai ulang tes - kemudian untuk kode Chromium Saya punya berita yang tidak menyenangkan, mungkin Anda akan melihat hasilnya hanya di pagi hari. Rasanya sakit, sakit.
Dalam laporan ini, Victor memutuskan untuk meringankan penderitaan kami dengan berbicara tentang cara utama untuk mengoptimalkan perakitan. Lebih tepatnya, mungkin semua ini diketahui oleh banyak pengembang pengalaman yang bijak, tetapi bagi seorang pemula - ini sangat berharga.

Laporan itu meninggalkan kesan beragam pada jiwaku. Yaitu, pada awalnya Anda belajar banyak cara untuk menghemat hal-hal sepele, dan kemudian mereka menjelaskan kepada Anda bahwa semua ini tidak perlu, karena sebentar lagi akan ada modul. Tetapi saat ini tidak ada modul, dan Anda masih perlu menggunakan semua trik lama ini, dan kemudian semua pekerjaan ini harus dibuang!
Namun, modul (dan coroutine) sebagian hanya di Dentang, dan konsep hanya di GCC. Dan apa yang harus dilakukan sekarang? Rasanya sakit, sakit. Tetapi setelah laporan itu menjadi sedikit lebih baik.
Area diskusi
Fitur khas konferensi Grup JUG.ru adalah ketersediaan zona diskusi wajib. Pembicara tidak melarikan diri tidak diketahui setelah laporan, tetapi terus berkomunikasi di situs yang ditunjuk khusus. Sayangnya atau untungnya, tidak ada yang merekam diskusi video di area diskusi. Untungnya - karena ini adalah cara untuk membahas masalah yang sangat sensitif dan akhirnya mengakui bahwa Anda tidak memahami sesuatu :-)

Laporan yang tersisa
Ada lebih banyak laporan. Sekarang saya berhenti di suatu tempat di tengah hari kedua. Anda dapat membicarakannya tanpa henti, jadi ada baiknya memindahkan diskusi ini ke pos kami di Habré yang akan datang. Lepaskan transkrip, buat analisis terperinci tentang abstrak dan sebagainya. Berlangganan ke blog perusahaan Grup JUG.ru dan tunggu beritanya!
Peserta konferensi (termasuk mereka yang menonton siaran langsung) akan dapat melihat semua laporan dalam rekaman. Anda seharusnya sudah memiliki entri, jika Anda mengisi umpan balik - periksa email Anda. Semua yang lain harus menunggu waktu yang cukup baik.
Untuk melengkapi uraian laporan, inilah foto Anton Polukhin yang tak tergantikan dari keynote penutup! Anton sangat keren. Namun, ada beberapa ketakutan bahwa ia begitu sering ditanya tentang mengerjakan Standar dan tentang Peningkatan sehingga suatu hari ia akan berhenti menjawab ... tetapi sejauh ini kami memiliki kesempatan untuk mengetahui semua yang diperlukan!

Pameran
Di tengah situs adalah pameran besar. Banyak perusahaan telah berkumpul dari seluruh Rusia untuk memberi kami liburan nyata. Anda bisa mengendarai sepak bola meja, berpartisipasi dalam undian dan sebagainya. Segala sesuatu yang dapat Anda harapkan dari area pameran konferensi.

Kami datang tidak hanya dari Rusia - misalnya, ada stand komunitas CoreHard dari Belarus, yang juga mengadakan konferensi di Minsk .

Antara kasus ini, Anda bisa membeli buku di toko buku dadakan.

Selain itu, sekarang kami selalu memiliki yang disebut Demo Stage. Ini adalah platform di mana laporan langsung pergi atau video disiarkan dari tempat salah satu aula.

Segala macam hadiah dimainkan di sana pada waktu itu. Sebagai contoh, Denis Kalanov menjelaskan mengapa turnamen olahraga telah lama lebih dari sekadar "liburan perusahaan" dan merangkum hasil dari turnamen kicker dua hari.

Afterparty dan Apa? Dimana? Kapan? ”
Pada akhir hari pertama, seseorang tidak hanya bisa pergi ke bofs, tetapi juga berpartisipasi dalam sesi olahraga “Apa? Dimana? Kapan? ” (Persahabatan, seperti yang Anda ingat) menang dan akhiri hari dengan pesta ulang tahun yang berapi-api.


Apa selanjutnya Selanjutnya C ++ Russia 2019 Piter
Seperti yang Anda bayangkan, setelah sukses seperti itu, C ++ Rusia tidak bisa berhenti di situ. Konferensi berikutnya akan diadakan musim gugur ini - mulai 31 Oktober hingga 1 November di St. Petersburg. Tempat ini masih diklarifikasi - Anda harus memilih tempat yang paling tepat untuk banyak orang.
Jika Anda siap untuk membuat laporan sendiri - maka sekarang saatnya untuk melakukannya. Anda harus mengikuti tautan dan hati-hati melakukan semua yang tertulis di sana.
Beberapa pembicara sudah dikenal.
Pertama, ini adalah Eric Nibler sendiri - seorang pria yang sekarang dikenal hampir semua orang berkat karyanya di bidang pengembangan Ranges di C ++ 20 dan perpustakaan rentang-v3. Dia juga adalah Pengembang Senior di Facebook, anggota aktif komite standardisasi, penulis beberapa perpustakaan di Boost, dan anggota Komite Pengarah Peningkatan. Bahkan, salah satu pembicara yang paling dicari di konferensi C ++.
Pengembang kedua yang terkenal adalah Sean Parent, seorang ilmuwan dan arsitek utama di Adobe, yang bekerja di Photoshop sejak tahun 1993, dan sebelum itu, di Apple pada transisi ke PowerPC. Dia juga bekerja di ChromeOS selama satu tahun, tetapi kembali ke Adobe. Apple, Google, Adobe - pada waktu yang berbeda perusahaan-perusahaan ini disebut "perusahaan impian", dan ia mengunjungi mereka semua. Anda juga dapat mengobrol dengannya di area diskusi dan mengajukan beberapa pertanyaan menarik dan tidak nyaman (seperti pertanyaan tentang perlunya mengintegrasikan mesin JavaScript ke dalam infrastruktur C ++ Photoshop, atau apa lagi yang ingin Anda pelajari dari salah satu pengembang Adobe terbaik).
Tentu saja, Anton Polukhin dari Yandex.Taxi terus tinggal bersama kami. Anton adalah perwakilan Rusia dalam ISO pada pertemuan internasional kelompok kerja mengenai standardisasi C ++. Penulis beberapa proposal yang diterima untuk standar bahasa C ++. Penulis Boost librari TypeIndex, DLL, Stacktrace, dan maintainer aktif Any, Conversion, LexicalCast, Variant. Dia adalah penulis Boost C ++ Pengembangan Aplikasi Cookbook dan Edisi Kedua.
Dan akhirnya, Alexander Bychuk dari Kaspersky Lab. Sejak 2007, Alexander telah mengembangkan middleware dan sistem manajemen dokumen elektronik. Semua ini ditulis dalam C dan C ++, jadi C ++ Enterprise Edition untuk Alexander bukanlah fiksi, tetapi pekerjaan sehari-hari. , — , . MQ-Brokers , , .
C++ Russia 2019 , .
! , ( Early Bird-). . , C++ Russia 2019 !