Le monde moderne du C ++ est très différent de ce à quoi nous étions habitués lors du C ++ 98. Quelqu'un l'admire, quelqu'un l'agace, mais le fait demeure. Voici quelques sujets qui excitent les esprits des développeurs aujourd'hui:
- 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
Dans moins d'un mois, une conférence tentera de répondre à ces questions: C ++ Russia 2019. Jetons un coup d'œil à son fonctionnement.

Fonctionnalités modernes et nouvelles du langage C ++
Ici, nous avons eu beaucoup de chance dans plusieurs directions à la fois. Premièrement, C ++ s'améliore activement, l'ensemble d'outils importants et utiles continue de croître. Toutes les langues ne sont pas aussi chanceuses - par exemple, dans Java 12, récemment publié, il n'y avait pas une seule fonctionnalité prête à la production du langage ou un changement majeur dans les bibliothèques.
D'un autre côté, tout le monde a-t-il une image claire de l'image générale de toutes les améliorations en C ++? Êtes-vous sûr d'utiliser correctement vos outils et cela ne se reproduira pas à l'avenir?
Et puis, il s'avère que lors de notre conférence, les deux discours (rapports d'ouverture et de clôture) proviennent de personnes qui participent au comité depuis des années. Ils ont un tel travail - garder à l'esprit une image de tout. En plus d'excellents rapports, vous pouvez également leur parler dans l'espace de discussion.
Le premier est Anton Polukhin avec une histoire sur les domaines où le C ++ est considéré comme indispensable , et des choses supplémentaires qui seraient bien d'avoir en C ++. Avec lui, nous avons récemment publié une interview sur Habré . En général, le sujet de la participation des Russes au comité a déjà été largement discuté à la fois sur Habré et partout (regardez, Yandex a même écrit un article à ce sujet en VK). Vous pouvez aller sur stdcpp.ru et voir une liste de représentants, maintenant c'est Anton Polukhin, Anton Bikineev et Alexander Fokin.
Le deuxième membre est Nicolai Josuttis. Il est l'auteur des livres The C ++ Standard Library et C ++ Templates et membre du comité de normalisation depuis près de vingt ans. Son rapport sera probablement l'un des plus d'actualité sur le thème «futur et moderne»: «C ++ 17 - les plus gros pièges» est destiné à parler des problèmes de l'architecture, qui est à blâmer et quoi faire.
Programmation fonctionnelle
Le sujet suivant à partir duquel une partie de la communauté brûle est la PF. Sur Habré, ce sujet est assez largement représenté.
Tout le monde dans la communauté ne pense pas que le jeu en vaut la chandelle. Les feux de joie n'ont pas encore été brûlés sur les performances de débogage des Ranges et sur l' article d'Aras Prankevichius . Beaucoup se demandent encore ce que sont les monades, pourquoi elles sont nécessaires et nécessitent des articles avec des images vives . Quelqu'un est déjà en train d'aiguiser un poignard et grommelant "a transformé mon merveilleux C ++ en une sorte de Haskell."
L'un des problèmes les plus importants de la FA est qu'il n'y a pas beaucoup de spécialistes. Tout le monde aime l'étudier, mais pour vraiment l'appliquer, cela pose des problèmes. Il y a inadéquation totale lorsqu'une personne croit sincèrement qu'elle comprend la FA, mais ne peut pas écrire Hello World avec. Il y a toutes sortes d'extrêmes quand une personne qui connaît la présence de lambdas se considère immédiatement comme le roi de la programmation fonctionnelle. Ou vice versa - avant d'écrire le Halloworld, il est emmené dans la grotte en mémorisant les «Catégories pour le mathématicien de travail» et tous les livres et manuels d'Okasaki depuis le début des temps.
Veuillez ne pas suivre les liens pour lire ces livres. Vous devez d'abord lire ce post et aller à la conférence.
Donc, l'industrie a besoin de quelqu'un versé en C ++ en PHP, et nous l'avons. Au début, vous pouvez vous familiariser avec une bonne habrointerview avec Ivan Chukich et Alexander Granin. Et oui, les deux seront en C ++ Russie.
Alexander parlera des analyseurs monadiques . Ivan parlera de «Conception C ++ en déplacement uniquement» et tiendra l'une des trois grandes formations - «Programmation fonctionnelle appliquée en C ++» .
Et il y a «Fonctions d'ordre supérieur et function_ref» de Vittorio Romeo de Bloomberg et «Structures de données immuables postmodernes» de Juan Pedro Bolívar Puente. Qu'est-ce que le postmoderne? Mais venez découvrir.
La métaprogrammation et la PF vont de pair, mais la situation est tout le contraire. Si en PF, nous étudions comment appliquer cela dans la pratique, alors dans la méta-programmation, une énorme quantité d'informations pratiques a été générée qui doit être systématisée, réalisée et affiner nos compétences par rapport à nos propres tâches.
C ++ Russia a un bloc entier dédié à ce sujet:
Chaque rapport est intéressant d'une manière ou d'une autre, et si vous commencez à le divulguer, il n'y aura pas assez de fierté. Par exemple, le dernier rapport concerne les moteurs de jeu: gamedev a ses propres exigences pour l'ensemble de la pile de développement, des outils aux performances STL, et ici vous rencontrez un développeur en direct du moteur Encore pour le jeu World of Tanks, qui vous parlera de Boost.Python, réflexion des paramètres matériaux pour les modèles 3D et d'autres choses spécifiques. En général, vous devez lire attentivement les descriptions et comprendre où vous voulez aller.
Multithreading, simultanéité, asynchronie et tout-tout
Bien qu'il n'y ait pas de bloc dédié pour dix rapports, ces sujets sont traités d'une manière ou d'une autre dans tous les autres rapports. Par exemple, en parlant de FP, c'est toujours intéressant - combien FP aide ou complique l'écriture du multithreading.
Et bien que le modèle d'exécution définisse une coordonnée distincte pour la profondeur de tous les autres rapports, il y aura quelques choses spécialisées: "Concurrence et parallélisme en C ++ 17 et C ++ 20/23" de probablement le célèbre Grimm Reiner, et "Développement C ++ asynchrone" .
Pourquoi exactement l'asynchronisme? Récemment, le monde a fait de grands progrès dans cette direction, des outils intégrés pour travailler avec l'asynchronie apparaissent dans toutes les langues depuis le sommet de TIOBE, et C ++ n'a pas fait exception, par exemple les extensions TS C ++ pour la concurrence . Comment séparer le grain de l'ivraie lorsque certains évangélistes de l'asynchronie essaient de nous vendre l'asynchronie comme valeur personnelle? Lors de conférences sur JavaScript et Java, les rapports «asynchrones» occupent parfois un tiers du programme . C'est agréable d'avoir au moins un bon rapport sur le sujet, ce que fera Pavel Novikov d' Align Technologies .
Comment vivre avec les outils existants
Les autres rapports du programme ne sont pas inclus dans les catégories ci-dessus, mais en eux-mêmes sont de petites perles. Par exemple, le thème DevOps n'est désormais pas moins chaud que l'asynchronisme décrit ci-dessus. Comme vous devez le savoir, «devops» n'est pas une personne ou une profession, mais une culture. Et cette culture est bâtie sur des outils, dont certains nous font encore très mal. Bien que C ++ lui-même soit rapide et rapide comme l'éclair, son assemblage est lent comme une tortue, et les outils classiques sur lesquels la culture DevOps devrait s'appuyer sont complexes et souvent peu fiables. Cela inclut des choses telles que des outils d'assemblage distribués, des méthodes de liaison, des modules malheureux. Viktor Kirilov fera une présentation «Le guide de l'auto-stoppeur pour des constructions plus rapides» et aidera peut-être un peu à faire face à cette douleur.
Une sorte de tel examen s'est avéré. Qu'est-ce que j'ai oublié? Pointeurs intelligents? Oui, et nous les avons, jusqu'à deux rapports ( un , deux ). Que pas en C ++ Russie.
Les formations
Si les présentations régulières ne suffisent pas, nous avons des formations à grande échelle. Chacun d'eux durera plusieurs heures, abordera un sujet spécifique et ne peut donc pas être organisé simultanément avec les rapports. Ils auront lieu un jour avant le programme principal, soit le 18 avril.
Les descriptions sont sur les liens. Si vous venez de la page principale des formations - cliquez sur les boutons «Détails» - c'est là que le ticket est sélectionné, et il indique ce qui doit être installé sur votre ordinateur portable.
Prochaines étapes
La grille de rapport n'est pas encore définitive. Il reste encore un mois (la conférence se tiendra comme prévu du 19 au 20 avril). Si vous êtes un participant, c'est-à-dire une demande - vérifiez le courrier, nous vous avons envoyé un sondage. Là, il convient de noter les rapports que je veux consulter. Cette enquête est assez interactive, les réponses affecteront la distribution des rapports dans les halls.
Je vous rappelle que sur le site officiel, vous pouvez vous familiariser avec le programme complet de la conférence pour savoir quoi et dans quel ordre vous souhaitez aller.
Vous pouvez y acheter des billets . Veuillez noter qu'il existe plusieurs types de billets, et en choisissant le type qui vous convient, vous pouvez sérieusement économiser. Si vous ne pouvez pas assister à la conférence en direct, c'est-à-dire la possibilité de participer en ligne - il existe une catégorie distincte de billets pour cela.