C ++ Russia 2019. Un petit reportage du lieu des événements et l'annonce de la prochaine conférence à Saint-Pétersbourg

La conférence Russie C ++ est de loin la conférence la plus sévère et en même temps de ces derniers temps. Elle s'est tenue dans le parc des congrès de l'hôtel Ukraine à Moscou et a rassemblé plus de six cents personnes.


Comme l’a dit un des camarades de l’après-partie: «J’essaie d’apprendre le C ++ à l’école, mais je rencontre constamment quelque chose de nouveau.» Ici, presque tous les rapports parlaient de quelque chose de nouveau. Parfois - à propos de quelque chose de complètement époustouflant qui restera à jamais avec vous.


C ++ La Russie s'est toujours distinguée par la présence d'intervenants spéciaux et de rapports spéciaux, et cette fois n'a pas fait exception. Jetons un coup d'œil à ce qui s'est passé ces deux jours chargés.



Vidéos et photos


Beaucoup de gens consultent ces articles afin de poser deux questions classiques: «Quand seront les vidéos?» et "Quand seront les photos?"


Les enregistrements des rapports deviennent disponibles pour tous les participants immédiatement après avoir rempli le formulaire de commentaires. Après environ un mois, sur le même lien, toutes les vidéos seront rechargées , mais de la meilleure qualité. La qualité actuelle est bonne, mais elle peut être encore meilleure.


L'occasion de remplir un feedback se clôturera ce samedi à 23h59 . Besoin d'être à l'heure!


Mais ceux qui n'ont pas assisté à la conférence attendront l'enregistrement des rapports beaucoup plus longtemps. Très probablement, nous les publierons plus près de la date du prochain C ++ Russia.


Les photos des participants sont déjà sur VKontakte . La liste des photos sera également réapprovisionnée, il est donc préférable de souscrire à l' ensemble du groupe à la fois.


Portée


Comme nous le pensions, tous les rapports peuvent être conditionnellement divisés en catégories:


  • Fonctionnalités modernes et nouvelles du langage C ++;
  • Programmation fonctionnelle;
  • Métaprogrammation;
  • Multithreading, simultanéité, asynchronie et tout-tout;
  • Comment vivre avec les outils existants.


Pour se frayer un chemin à travers la conférence, tout le monde doit organiser un certain concasseur de chiffres et comprendre ce que vous voulez participer en direct et ce que vous voulez voir dans l'enregistrement.


Il existe plusieurs approches pour parcourir le programme. Dans l'un, vous choisissez entre des sujets intéressants. Dans un autre, vous allez à des conférenciers spécifiques que vous connaissez et qui sont assurés de parler de sujets intéressants. Plus rarement, les gens écoutent les représentants d'entreprises spécifiques.


J'avais une stratégie très simple: nous sélectionnons des sujets sur les compilateurs, la métaprogrammation et les jeux, et à l'intérieur, nous allons à des conférenciers célèbres. Il était facile de choisir dans une telle stratégie.


Pour les critiques de l'enregistrement, le programme entier est non seulement resté sur le site , mais également complété par des diapositives. Vous pouvez recommencer le programme, en choisissant maintenant des rapports sur un autre principe, et organiser pour vous-même, pour ainsi dire, une deuxième conférence.


Pluralisme d'opinions et BOF


Il est clair que tout le monde ne s'intéresse pas à tout en même temps. Parfois, il est particulièrement brillant. Par exemple, lors d'une session BOF sur le sujet «C ++ contre tout le monde», l'un des participants a suggéré de discuter de C ++ Enterprise Edition, et une partie de l'auditoire ne l'a pas immédiatement compris. Au contraire, c'était très étrange pour moi d'entendre des rêves sur la façon dont dans d'autres technologies (Golang, JS et Java, dans lesquelles, pendant une minute, je comprends quelque chose) tout est rose - ce n'est pas vraiment comme ça!



Il est intéressant que nous arrivions aux rapports le matin (évidemment), mais nous ne pouvons comprendre pleinement la position des complices en fin d'après-midi.


En parlant de sessions BOF: elles se sont avérées particulièrement bonnes. Pour ceux qui ont soudainement oublié, BOF est quelque chose comme une «table ronde» du soir, mais sans table et orateurs - seulement des modérateurs et des participants. Malgré le thème à l'origine creux «C ++ contre tout le monde», nous avons non seulement réussi à ne pas nous battre, mais nous avons continué à communiquer longtemps après l'achèvement officiel. Plus précisément, jusqu'à la fermeture du site, lorsque l'administration est venue nous voir et a demandé de transférer la discussion à un autre endroit (certains l'ont fait, en continuant dans la barre suivante).


Bien sûr, je n'étais pas au deuxième BOF, mais à en juger par la façon dont le public s'est réuni, tout s'est également bien passé. Quelque chose comme ça, peu orthodoxe ou quelque chose, regardez cette photo.



Réservation pour conférenciers, sponsors et tout le monde


Le problème lors de la rédaction d'un rapport sur la conférence était dû à beaucoup de choses. Si vous commencez à lister tous les orateurs, tous les sponsors, apportez une photo de chaque chose sympa sur chacun des stands - ce post ne finira jamais. Tous ceux qui sont mentionnés ici sont arrivés par hasard, et non sur la base d'un principe juste.


Découverte


En tant qu'hôte de la diffusion en ligne, je n'ai jamais pu regarder l'intégralité du reportage du début à la fin. Cependant, cela a également permis de visiter plus d'un rapport à l'intérieur de la fente, ce qui est assez spécifique. Il en va de même pour tous ceux qui vous font passer des vacances - par exemple, les fabricants de stands dans les stands d'entreprise.


Mais il y a plusieurs moments où tous les participants se réunissent en même temps, et il n'y a pas de choix - discours, ouverture et fermeture.


À l'ouverture, j'ai été ravi que Sergey Platonov sermp et Andrey Dmitriev real_ales du groupe JUG.ru soient sur la même scène. Maintenant, la conférence est entre les mains de nombreuses personnes et Sergei a assumé le rôle fier et le plus important du directeur de programme dans ce processus. Le roi est vivant, vive le roi! :-)



Discours d'ouverture


Un autre point que nous avons tous vu et sur lequel nous pouvons spéculer. Il était hébergé par Nicolai Josuttis, auteur de la bibliothèque standard C ++ et des modèles C ++.



Pour certains, ces livres sont perçus comme un texte sacré et des connaissances données ci-dessus. Quelqu'un, au contraire, est sceptique quant au fait que le bon vieux temps où les livres étaient écrits et qu'il n'y avait aucune référence n'était pas si vieux, pas si gentil, et leurs auteurs devraient être considérés avec suspicion en 2019.


Et ici, nous voyons Nikolai avec un autre impératif sur le «C ++ moderne» - et il semble que ce soit l'un des rapports les plus sensés sur le sujet. Il est probable que cela affecte en quelque sorte le fait qu'il soit membre du comité de normalisation depuis près de vingt ans. Au cours de l'année, nous faisons parfois des résumés textuels et des transcriptions de rapports pour Habr, et il semble que ce soit le tout premier candidat pour une analyse détaillée.


Oleg Fathiev, «L'évolution de la métaprogrammation»


C'est un rapport qui m'a laissé un vide (agréable?) Dans mon âme. Le fait est que si je vois une sorte de code C ++, alors c'est généralement quelque chose en C ++ 98 dans le style de "C avec des classes", et il est écrit, bien que extrêmement dégoûtant en apparence, mais aussi simple et maladroit que possible. Le rapport d'Oleg n'est pas comme ça. Dans ce rapport, Oleg aborde la question de l'écriture de code pour travailler avec des listes de types, similaire à Boost.Hana.



Jusqu'où êtes-vous prêt à écrire du bon code - bien grâce à la métaprogrammation? Et qu'adviendra-t-il de ce code à l'avenir, les créateurs de la norme pensent-ils et se soucient-ils vraiment de vos façons d'utiliser? Autant de questions.


Anton Dunchev, «Métaprogrammation pour le moteur de jeu»


J'ai regardé ce rapport simplement parce qu'il concerne le moteur de jeu et Wargaming. Je pense que de nombreux développeurs se sont lancés dans la programmation précisément parce qu'ils jouaient à des jeux dans l'enfance et voulaient faire de même. Et ici, nous avons un développeur en direct de la partie client de World of Tanks - c'est-à-dire, juste la partie où toutes les choses les plus intéressantes sont comme la géométrie. Ceci est une autre discussion sur la métaprogrammation, cette fois sur la réflexion des fonctions natives en Python et pourquoi Boost.Python n'est pas nécessaire.



En général, écrire un programme en plusieurs langues à la fois est une question théorique et pratique très intéressante, qui peut être considérée sous des angles complètement différents. Chaque fois que vous prenez conscience de méthodes de plus en plus perverses qui vous permettent de faire des choses de plus en plus sophistiquées. Par exemple, mon dernier amour est GraalVM, une machine virtuelle polyglotte qui vous permet d'écrire en C ++ avec des insertions en Python ou en Python avec des insertions en C ++, et il n'est pas surprenant que je m'en tienne à ce rapport comme avec un litre de colle «Moment».


La principale question pour le développeur n'est pas le logiciel utilisateur final, mais la bibliothèque - «pourquoi». Pourquoi les utilisateurs devraient-ils utiliser ce que vous proposez? Dans ce cas, Anton donne une bonne explication: presque n'importe quel moteur de jeu est construit sur l'interprétation du contenu du jeu et la réflexion des structures internes afin d'organiser le retour d'informations sur les objets du jeu et la logique du jeu, et nous avons besoin de Python, et ici nous pouvons faire demi-tour en pleine croissance!



Mikhail Matrosov, Alexander Voronkov, «Comment nous avons mis à niveau le compilateur et pris en charge la multiplateforme»


Les rivaux du rapport étaient le réactivisme et l'initialisation. Un camarade a déclaré qu'il n'avait pas le choix dans cette fente - nous devons aller à reactivschina. Je n'avais tout simplement pas le choix - vous devez aller aux compilateurs.


Rappelez-vous la remarque précédente sur la question «pourquoi?» Par exemple, vous voyez ici le système de compatibilité le plus cool avec les mises à niveau de la chaîne d'outils, puis le patron demande - pourquoi? Bien sûr, c'est pourquoi!



Justification de la valeur du travail pour le leadership, l'utilisation de Conan (nous avons découvert à BOF que quelqu'un ne connaît pas du tout son existence!), Les mises à niveau de Visual Studio et les problèmes de reproductibilité, une mise à jour en C ++ 17 - de nombreux hacks de la vie le long du chemin de l'introduction de fonctionnalités intéressantes .



Et pourtant, en général, il est intéressant de voir comment deux personnes en même temps pourront mener un bon rapport. C'est un format très impopulaire car il complique incroyablement la préparation des haut-parleurs - les coûts du protocole et de la synchronisation. Bravo.


Ivan Čukić, «Conception C ++ mobile uniquement»



Toute ma vie, j'ai utilisé KDE (sauf en de rares occasions où j'ai dû ignorer Xfce en plus de freeNX). Je me souviens comment le plasma est tombé, puis s'est arrêté. Parfois, vous passez de longues soirées à discuter avec des développeurs imaginaires de KDE essayant de faire quelque chose hors de l'ordinaire. Je ne me plains pas de KDE, au contraire - tant d’efforts y ont été consacrés précisément parce que je l’aime beaucoup. Et maintenant, un homme vient à la conférence qui y met encore plus d'efforts que vous . Surtout parce qu'il n'est pas un utilisateur, mais le développeur de Plasma and Activities.



Oh oui, à propos du rapport. Il s'agit d'un autre rapport «tout le monde doit savoir», comme l'a fait Nicolai Josuttis. Son nom a changé au dernier moment. Au départ, il s'agissait simplement de «Conception C ++ à déplacement uniquement», mais elle est devenue «Conception C ++ à déplacement uniquement - Partie I». En effet, le sujet en question est très vaste et continue de croître. Ivan a souligné qu'il est mauvais de nommer les rapports «Partie I» parce que «Partie II» ne se produit généralement jamais. Mais ici, il est évident que les informations sont facilement saisies en quelques parties supplémentaires. Ivan ne s'est pas limité à décrire les fonctionnalités du langage (comme les concepts, etc. - enfin, vous comprenez), mais à un moment donné, il a retroussé ses manches, s'est plongé dans les problèmes de performances, et le reste du rapport est allé à Godbolt avec des listes d'assembleurs pour la moitié l'écran. Quinze minutes allouées après le rapport aux questions ont été entièrement dépensées. En général, cela semble être un sujet très chaud.


Alexander Granin, analyseurs monadiques


En général, la programmation fonctionnelle est en quelque sorte triste. Récemment, j'ai pensé à l'article à traduire en Habr, j'ai lu des blogs au hasard avec Hackernews, pleuré. Il y a un groupe de dirigeants qui ne comprennent rien dans le PF, mais essaient désespérément de prétendre comprendre en combinant des mots intelligents rares dans un ordre différent, dans l'espoir que quelqu'un l'achètera. Ils se retrouvent parfois lorsqu'ils copient des mots de Wikipédia dans le mauvais ordre. Il y a un groupe qui, au contraire, comprend, mais qui a déjà été brûlé par l'expérience précédente d'essayer d'expliquer, et qui s'en tire donc avec des mots généraux et dessine de belles présentations. Il est difficile de séparer certains des autres, surtout lorsque vous ne comprenez pas vous-même. Ceci et cela sous forme de présentation ressemble à une poubelle rare, à partir de laquelle il n'est pas clair si l'auteur peut écrire au moins une Todo-List avec une interface Web.


Dans ce contexte, les «analyseurs monadiques» d'Alexandre - une bouffée d'air. Premièrement, le présentateur peut programmer à Haskell et le fait de façon professionnelle. Deuxièmement, il s'agit d'un récit cohérent avec de belles diapositives propres, remplies non pas de mémos Internet, mais de code. Troisièmement, tout est clair que cela vaut beaucoup.



Le rapport a examiné les analyseurs monadiques: en quoi cette approche diffère des autres types d'analyse (analyseurs combinatoires à la Boost :: Spirit, générateurs d'analyseurs, solutions ad hoc comme les machines à états finis, etc.), quels sont ses avantages et ses inconvénients et quelles sont les manifestations de ces concepts importants de programmation fonctionnelle comme un foncteur, un foncteur applicatif et une monade. En général, tout ce que vous vouliez (et ne vouliez pas) savoir sur le sujet là-bas.


Viktor Kirilov, «Le guide de l'auto-stoppeur pour des constructions plus rapides»


Lorsque vous venez (ou même regardez du coin de l'œil) en C ++ après une expérience avec d'autres technologies, cela devient un peu effrayant en raison de la vitesse d'assemblage. Une fois que j'ai écrit un article sur Habr, comment j'ai débogué le navigateur Chromium, et mon principal problème n'était pas la complexité de la tâche (la tâche est très simple), mais que Chromium peut être assemblé pendant des heures. Si vous vous habituez à JavaScript ou Java, après avoir changé quelques lettres dans le code, redémarrez immédiatement les tests - alors pour le code Chromium, j'ai des nouvelles désagréables, vous ne verrez peut-être les résultats que le matin. Ça fait mal, ça fait mal.


Dans ce rapport, Victor a décidé d'alléger nos souffrances en évoquant les principaux moyens d'optimiser l'assemblage. Plus précisément, tout cela est probablement connu de nombreux développeurs d'expérience, mais pour un débutant - c'est inestimable.



Le rapport a laissé une impression mitigée dans mon âme. Eh bien, c'est d'abord que vous apprenez beaucoup de façons d'économiser sur des bagatelles, puis ils vous expliquent que tout cela n'est pas nécessaire, car bientôt il y aura des modules. Mais pour le moment, il n'y a pas de modules, et vous devez toujours utiliser toutes ces vieilles astuces, et ensuite tout ce travail devra être jeté!


Et pourtant, les modules (et coroutines) ne sont en partie que dans Clang, et les concepts ne sont que dans GCC. Et que faire maintenant? Ça fait mal, ça fait mal. Mais après le rapport, cela s'est un peu amélioré.


Domaines de discussion


Une caractéristique distinctive des conférences du Groupe JUG.ru est la disponibilité de zones de discussion obligatoires. L'orateur ne s'enfuit pas inconnu juste après le rapport, mais continue de communiquer sur un site spécialement désigné. Malheureusement ou heureusement, personne n'enregistre de discussions vidéo dans les zones de discussion. Heureusement - parce que c'est un moyen de discuter de questions très sensibles et d'admettre enfin que vous ne comprenez pas quelque chose :-)



Rapports restants


Il y a eu beaucoup plus de rapports. Maintenant, je me suis arrêté quelque part au milieu du deuxième jour. Vous pouvez en parler à l'infini, il vaut donc la peine de déplacer cette discussion dans nos prochains articles sur Habré. Publiez les transcriptions, faites une analyse détaillée des résumés, etc. Abonnez-vous au blog de la société JUG.ru Group et attendez les nouvelles!


Les participants à la conférence (y compris ceux qui ont regardé la diffusion en direct) pourront voir tous les rapports dans l'enregistrement. Vous devriez déjà avoir des entrées, si vous avez rempli une rétroaction - vérifiez votre courrier. Tout le reste devra attendre un bon moment.


Pour compléter la description des reportages, voici une photo de l'irremplaçable Anton Polukhin du discours de clôture! Anton est très cool. Il y a cependant une certaine crainte qu'il soit si souvent interrogé sur le travail sur le Standard et sur Boost qu'il cessera un jour de répondre ... mais jusqu'à présent, nous avons une chance de découvrir tout ce qui est nécessaire!





Exposition


Au centre du site se trouvait une grande exposition. De nombreuses entreprises se sont rassemblées de toute la Russie pour nous offrir de vraies vacances. Vous pouvez conduire du baby-foot, participer à des tombolas, etc. Tout ce que vous pouvez attendre de la zone d'exposition de la conférence.



Nous venions non seulement de Russie - par exemple, il y avait un stand de la communauté CoreHard de Biélorussie, qui a également fait sa conférence à Minsk .



Entre les étuis, vous pouvez acheter un livre dans une librairie impromptue.



De plus, nous avons maintenant toujours la soi-disant étape de démonstration. Il s'agit d'une telle plate-forme où les reportages en direct disparaissent ou une vidéo est diffusée à partir de la scène de l'une des salles.



Toutes sortes de prix y sont parfois joués. Par exemple, Denis Kalanov a expliqué pourquoi les tournois sportifs étaient depuis longtemps bien plus que «des loisirs d'entreprise» et a résumé les résultats du tournoi de kicker de deux jours.



Afterparty et quoi? O?? Quand? "


A la fin de la première journée, on pouvait non seulement aller au bofs, mais aussi participer à la séance de sport «Quoi? O?? Quand? " (l'amitié, comme vous vous en souvenez) a gagné et terminé la journée avec une afterparty enflammée.




Et ensuite? Suivant C ++ Russia 2019 Piter


Comme vous pouvez l'imaginer, après un tel succès, C ++ Russia ne peut pas s'arrêter là. La prochaine conférence se tiendra cet automne - du 31 octobre au 1er novembre à Saint-Pétersbourg. Le lieu est toujours en cours de clarification - vous devez choisir le lieu le plus approprié pour autant de personnes.


Si vous êtes prêt à faire votre propre rapport - il est temps de le faire. Vous devez suivre le lien et faire soigneusement tout ce qui y est écrit.


Plusieurs intervenants sont déjà connus.


Tout d'abord, c'est Eric Nibler lui-même - un homme qui est maintenant connu de presque tout le monde grâce à son travail sur le domaine du développement des gammes en C ++ 20 et à la bibliothèque gammes-v3. Il est également développeur principal sur Facebook, membre actif du comité de normalisation, auteur de plusieurs bibliothèques de Boost et membre du comité directeur de Boost. En fait, l'un des orateurs les plus recherchés à la conférence C ++.


Le deuxième développeur bien connu est Sean Parent, scientifique principal et architecte chez Adobe, qui a travaillé sur Photoshop depuis 1993, et avant cela, chez Apple sur la transition vers PowerPC. Il a également travaillé chez ChromeOS pendant un an, mais est revenu à Adobe. Apple, Google, Adobe - à différentes époques, ces entreprises étaient appelées «entreprises de rêve», et il les a toutes visitées. Vous pouvez également communiquer avec lui dans la zone de discussion de la même manière et poser des questions intéressantes et inconfortables (comme des questions sur la nécessité d'intégrer le moteur JavaScript dans l'infrastructure C ++ de Photoshop, ou qu'est-ce que vous aimeriez apprendre de l'un des meilleurs développeurs Adobe).


Bien sûr, Anton Polukhin de Yandex.Taxi continue de rester avec nous. Anton est le représentant de la Russie à l'ISO aux réunions internationales du groupe de travail sur la normalisation C ++. L'auteur de plusieurs propositions acceptées pour la norme de langage C ++. Auteur des bibliothèques Boost TypeIndex, DLL, Stacktrace et mainteneur actif Any, Conversion, LexicalCast, Variant. Il est l'auteur de Boost C ++ Application Development Cookbook and Second Edition.


Et enfin, Alexander Bychuk de Kaspersky Lab. Depuis 2007, Alexander développe un middleware et un système de gestion électronique de documents. Tout cela a été écrit en C et C ++, donc C ++ Enterprise Edition pour Alexander n'est pas une fiction, mais un travail quotidien. , — , . MQ-Brokers , , .


C++ Russia 2019 , .


! , ( Early Bird-). . , C++ Russia 2019 !

Source: https://habr.com/ru/post/fr449162/


All Articles