
Qu'est-ce que ces gens ont en commun, outre le fait qu'ils sont tous connus dans le monde C ++?
- Sean parent
- Eric Niebler
- Marshalllow
- Bryce adelstein lelbach
- Anton Polukhin
- Andrey Davydov
Réponse: tous viendront en C ++ Russie. Maintenant que l'été est terminé et que tout le monde est de retour de vacances, il est temps d'attendre la prochaine grande conférence C ++ : C ++ Russia 2019 Piter . Il sera abordé non seulement par des personnes de cette liste, mais aussi par de nombreux autres orateurs internationaux. 30 rapports, 2 journées complètes de 10 h à 19 h, pas d'histoires d'introduction et de documentation de lecture sur les syllabes - du hardcore solide et immédiat.
Cela s'est avéré être l'une des conférences les plus rapides et les plus qualitativement organisées de la nôtre, la moitié du programme est devenue connue cet été: les intervenants savent clairement ce qu'ils veulent dire en C ++ Russie. Maintenant, le programme s'est presque stabilisé et il est temps d'ouvrir le voile du secret.
Nous divisons tous les rapports en «catégories de planification», que nous remplissons ensuite de sujets intéressants. Les voici:
- Capacités des nouvelles normes
- C ++ pratique
- L'infrastructure
- Multithreading
- Métaprogrammation
- Programmation fonctionnelle
Les catégories sont présentées par ordre décroissant du nombre de rapports: à partir de neuf rapports sur les nouvelles fonctionnalités standard, et se terminant par le seul rapport sur le fonctionnalisme à l'heure actuelle - «Étiquetage de type à la compilation» par Ivan Chukich. Il y a encore quelques points blancs dans le programme qui se rempliront littéralement au cours des deux prochaines semaines. Voyons ce qui s'est passé en conséquence.
Têtes d'affiche
Tous les conférenciers sont des personnalités bien connues de la communauté; écrire à leur sujet pourrait être interminable. Parlons en détail au moins de ceux que nous avons énumérés avant le kat.
Sean Parent est l'un des principaux chercheurs et architectes de la division mobile Adobe. Il a développé une brillante carrière dans des entreprises de renommée mondiale. Dans la période de 1988 à 1993, il a aidé Apple à écrire leurs célèbres systèmes d'exploitation pour PowerPC, depuis 1993, il a commencé à développer Photoshop, passé 2009 dans Google, développant ChromeOS et retourné à Adobe. Que peut nous dire une personne avec une histoire si riche? À l'heure actuelle, vous pouvez trouver sur YouTube de nombreuses vidéos avec sa participation, par exemple - une série de rapports Better Code , qui parle de lui-même. Ce n'est pas la première fois que nous nous rendons en C ++ Russie: à l'aube de l'histoire de la conférence, en 2015, c'est lui qui a fait le premier rapport d'ouverture , et en 2017 nous avons fait une interview d'une demi-heure avec lui. Tout ce que Sean Parent dit est différent en profondeur et en élaboration, ce n'est pas du matériel «regardez et oubliez», mais quelque chose qui mérite d'être rappelé et de revenir encore et encore.
Maintenant, il vole vers nous avec un nouveau rapport de la série BetterCode: Relationships , et vous ne voulez certainement pas manquer cela. C'est pourquoi le rapport a été choisi par le conférencier d'honneur - tous les participants pourront le voir avant de se disperser dans des salles séparées.
Le deuxième discours est dirigé par Eric Niebler . Ici, ce serait de mettre fin à l'histoire, car récemment son nom a été plus que connu du public grâce à Standard Ranges , et les nibloïdes qui sont devenus le terme (voir le balisage sur CppReference ) portent son nom. Mais, d'une manière générale, tout cela n'est que du battage médiatique, et il a fait beaucoup pour C ++.
Eric est un membre actif du Comité de normalisation C ++, développeur senior chez Facebook, et c'est à cette époque qu'il a commencé à s'engager dans la gamme. Avant Facebook, il était consultant, travaillant à la fois individuellement et avec BoostPro Computing . Dans le coup de pouce, il a non seulement écrit plusieurs de ses bibliothèques et a agi en tant que directeur de publication, mais est également devenu membre du comité directeur de Boost, qui (selon le nom) s'occupe des questions de développement stratégique. La mode d'Eric écrit du code puissant et en même temps élégant, développant de belles abstractions (que, en général, vous pouvez voir dans des plages ... ou ne pas voir, selon les préférences). Tout aussi important, il peut transmettre des pensées non seulement avec du code, mais aussi sous la forme de rapports intelligibles intelligibles.
Eric arrive avec le discours «Une abstraction unificatrice pour l'async en C ++» . Brièvement sur le problème: l'asynchronie en C ++ est maintenant en bas, elle doit être réparée. Des outils standard comme les promesses, les futurs, les threads, les verrous, même std::async
- ils fonctionnent tous soit inefficacement, soit simplement cassés, ou les deux en même temps. Horreur. Pire encore, il n'existe aucun moyen standard de dire exactement où le travail doit être effectué. Néanmoins, nous avons un tas de tâches spécifiques au C ++ qui en ont besoin: algorithmes parallèles, informatique hétérogène, réseau et E / S, flux réactifs ... toutes les technologies essentielles essentielles qui attendent une abstraction standard depuis des années pour refléter l'idée de l'informatique asynchrone. Dans ce rapport, Eric creusera avec nous les recherches du Comité, dans lesquelles ils ont déterminé les opérations de base derrière tout calcul asynchrone. Nous verrons pourquoi les contrats à terme et les promesses ralentissent tant, ce qu'est un exécuteur testamentaire, ce qui est commun entre les rappels et les coroutines, et comment l'abstraction «Task» (qui est maintenant activement étudiée sur Facebook par R&D) peut faire la même révolution en asynchronisation qui s'est produite avec l'avènement des itérateurs en code synchrone régulier.
Si Eric est un ingénieur et un chercheur cool qui parle rarement bien, alors Marshall Clow est la star des conférences internationales. Si vous allez sur YouTube et entrez son nom dans la recherche , YouTube devient sa page d'accueil personnelle. CppCon, C ++ Now, ACCU, EuroLLVM - tout ce que vous pouvez imaginer. Et maintenant, voici C ++ Russie. Fait intéressant, avec tout cela, il n'est pas seulement un autre évangéliste régulier, mais C ++ - un développeur avec 35 ans d'expérience, l'auteur original de Boost.Algorithm
(et généralement le contributeur de boost depuis plus de 15 ans), le chef du groupe de travail sur les bibliothèques au sein du Comité Normalisation C ++ et développeur principal de libc ++ (bibliothèque standard pour LLVM). Une légende vivante et une personne qui a magistralement écrit en C ++ alors que la moitié de ceux qui lisent ce texte ne sont pas encore nés.
Marshall viendra avec le rapport "Renforcer la bibliothèque de modèles standard C ++" , l'essentiel est le suivant: puisque la bibliothèque standard est utilisée par tout le monde d'affilée, elle devrait être très bien écrite et ne se casser nulle part. Le rapport est consacré à une discussion des techniques et des outils qui permettent à libc ++ de LLVM de répondre à ces exigences: débogage, suites de tests et couverture, analyse statique et dynamique, fuzzing. Bien sûr, ce rapport n'est pas uniquement destiné aux développeurs LLVM, chacun peut en tirer ses propres idées et tirer ses propres conclusions.
Bryce Adelstein Lelbach a étudié le C ++ un peu moins que Marshall, mais il a quelque chose à surprendre. Il est l'un des leaders mondiaux de la communauté C ++. Son activité sociale est que Bryce est maintenant le directeur de programme des principales conférences C ++ - CppCon et C ++ Now, le chef du groupe d'utilisateurs C ++ à San Francisco et Silicon Valley. Au sein du comité de normalisation, il participe à JTC1 / SC22 / WG21, est président du Tooling Study Group (SG15) et de Library Evolution Incubator (SG18), et en C ++ 17, il a travaillé sur une longue liste de choses (algorithmes parallèles, exécuteurs, futurs, expéditeurs / récepteurs, multidimensionnels tableaux, modules). Entre autres, Bryce dirige l'équipe de développement CUDA chez NVIDIA, aidant parfois LLVMLinux et s'engageant à Boost.
Bryce arrive avec une conférence sur «La bibliothèque de synchronisation C ++ 20» . Depuis la sortie de C ++ 11, plus d'une douzaine d'années se sont écoulées, le monde a changé! À l'époque de C ++ 11, les processeurs multicœurs étaient déjà bien établis, mais le nombre normal de cœurs était de deux ou quatre. Tout ce qui est supérieur à dix, comme les anciens, était indiqué par le mot «beaucoup». «Deux», «quatre» et «plusieurs». Maintenant, il est normal d'avoir des dizaines d'objectifs et de supporter des délais de synchronisation d'une milliseconde entière. Il est devenu courant d'avoir des dizaines et des centaines de fils, et le mot «beaucoup» signifie maintenant «des centaines de milliers». Il y a dix ans, il était peu probable que quiconque puisse clairement imaginer les problèmes actuels du multithreading. À l'aide des outils traditionnels d'aujourd'hui, nous sommes confrontés à une latence élevée inacceptable ou à un contenu inacceptable pour la synchronisation des threads. La bibliothèque C ++ 20 propose de nouvelles solutions - des primitives légères pouvant fonctionner avec des centaines de milliers de threads. std::atomic::wait
, std::atomic::notify_*
, std::atomic_ref
, std::counting_semaphore
, std::latch
, std::barrier
... Ce rapport est construit comme une séquence d'exemples sur lesquels nous apprendrons comment utiliser tous ces outils afin de construire une application moderne qui peut être exécutée en parallèle sur presque n'importe quel matériel, des processeurs intégrés et serveurs aux nouveaux GPU.
L'orateur suivant est le célèbre développeur russe Anton Polukhin . Connu pour les rapports sur les domaines où C ++ est considéré comme indispensable et des choses supplémentaires qui seraient bien d'avoir en C ++. Représentant de la Russie à l'ISO aux réunions internationales du groupe de travail sur la normalisation C ++, auteur de plusieurs propositions acceptées pour la norme du langage C ++. En préparation de la conférence précédente, nous avons publié une interview avec lui sur Habré . En général, le sujet de la participation russe au Comité a déjà été assez largement discuté à la fois sur Habré et partout (regardez, Yandex a même écrit un article à ce sujet en VK), et maintenant n'ouvrons pas ce sujet. Vous pouvez aller sur stdcpp.ru et voir une liste de représentants, maintenant c'est Anton Polukhin, Anton Bikineev et Alexander Fokin. Anton est également l'auteur de plusieurs bibliothèques Boost: TypeIndex, DLL, Stacktrace, est activement engagé dans la prise en charge de Any, Conversion, LexicalCast, Variant. Il a écrit le Boost C ++ Application Development Cookbook and Second Edition.
Cette fois, Anton arrive avec le rapport «C ++ Taxi Tricks» (le rapport est appelé ainsi, évidemment, car Anton travaille dans Yandex.Taxi). L'essence des astuces est de savoir comment écrire des solutions apparemment bien connues de manière magnifique et plus efficace - par exemple, à partir de Pimpl, vous pouvez jeter l'allocation dynamique et fixer le cache.
Diluons notre liste avec quelqu'un qui ne travaille pas au Comité. Saluez Andrei Davydov de JetBrains - il travaille dans l'équipe ReSharper C ++ depuis trois ans maintenant, et beaucoup d'entre nous utilisent tous les jours les résultats de son travail. Dans le rapport, Andrei va parler de la façon dont l'apparence des modules affectera le cœur du langage C ++: si auparavant le compilateur travaillait avec les unités de traduction une à la fois, puis avec l'avènement des modules, les règles du jeu ont changé. Les sujets suivants seront abordés:
- qu'est-ce qu'une entité accessible et en quoi diffère-t-elle du visible;
- comment les modules affectent ADL;
- si des entités avec une liaison interne peuvent s'infiltrer dans un autre module;
- peut importer une classe à la fois complète et incomplète;
- ce qui arrivera aux fonctions en ligne dans un monde modulaire.
Notez qu'il ne s'agit pas d'un rapport d'introduction aux modules pour débutants. Les étudiants doivent se familiariser avec les principes des modules et comprendre pourquoi les modules sont nécessaires. La bonne nouvelle est que, d'une part, la compréhension est assez simple (il suffit de google un bon article), et d'autre part, ce C ++ Russia aura une autre introduction à deux sur les modules de Dmitry Kozhevnikov (cela fonctionne également chez JetBrains).
Le reste du programme
Il est bien évident qu'il est impossible de parler d'une trentaine de personnes et de leurs 30 reportages dans une brève post-annonce sur Habré. Par conséquent, tout cela est décrit plus en détail sur le site officiel de la conférence . Il est important de noter que le programme continue d'évoluer: par exemple, comme les présentateurs, avec l'aide du Comité du programme, continuent d'améliorer leurs rapports, leurs descriptions sont également mises à jour. Donc, plus près du 31 octobre, tout sera un peu différent, mais le sens général restera le même.
Les rapports ne sont pas tout!
Bien sûr, une conférence n'est pas seulement un rapport, mais aussi un océan de communication. C'est là que la présence en direct diffère de la diffusion en ligne, ce que nous prévoyons également de faire. Jetez un œil à la liste ci-dessus - avec la plupart de ces personnes, j'aimerais rencontrer et discuter de quelque chose d'important. Nous avons une telle opportunité: après la fin du rapport, tout le monde va dans la zone de discussion et y parle aussi longtemps que possible. À la fin de la journée, des sessions dites BOF sont organisées (quelque chose comme une table ronde, mais tout le monde y participe).
Vous pouvez simplement rencontrer des gens intéressants de la communauté qui sont également venus, mais sans rapport. Vous pouvez trouver des entreprises d'intérêt, apprendre quelque chose de leurs représentants et participer à des concours. Il y aura différentes activités parallèles auxquelles nous réfléchissons actuellement. Bref, tout ce que l'on peut imaginer d'une grande conférence.
Master classes
En plus du programme principal de la conférence, il y aura également des master classes (la participation à ceux-ci est établie et payée séparément). Ils auront lieu la veille de la conférence et, contrairement aux rapports, prendront au moins plusieurs heures chacun. Des descriptions détaillées et les conditions de participation aux master classes sont disponibles sur le site officiel .
Anton Polukhin - «C ++ agile et moderne»
Anton est un développeur russe bien connu, dont nous avons parlé un peu plus haut dans cet article. Son expérience en tant qu'auteur des bibliothèques Boost, un participant et le Comité de normalisation, ainsi que sa pratique approfondie, lui permettent d'écrire du code C ++ intelligent compétent et d'apprendre aux autres à le faire.
Dans toute grande base de code, vous pouvez trouver des morceaux de code absolument incompréhensible. En règle générale, un tel code est écrit pour gagner un peu dans les performances des applications ... et, en règle générale, un tel code n'est pas nécessaire en principe, car il n'optimise pas ce qui est nécessaire, pas à l'endroit où il est nécessaire, et pas comme il se doit .
La master class commencera par un petit exemple, où vous rencontrerez toutes les erreurs courantes d'optimisation prématurée. Ensuite, elle ira des bases et considérera des choses comme les algorithmes et les conteneurs de la bibliothèque standard (et pas seulement celle standard), la sémantique des mouvements et son comportement inattendu, le multithreading. Il s'agit d'un atelier entièrement pratique utilisant Google Benchmark et des tâches qui ressemblent à des tâches pour optimiser un code spécifique.
Rainer Grimm - «Programmation intégrée avec C ++ moderne»
Rainer Grimm est un formateur expérimenté en programmation C ++, Python et développeur de logiciels en Allemagne. L'embarqué est l'un des principaux domaines d'application du C ++ moderne. C ++ vous permet de communiquer directement avec le matériel et fournit des abstractions pour la construction de systèmes complexes. Dans le C ++ moderne, il y a beaucoup de choses qui aident à embarquer. Ce sont des choses comme la sémantique de mouvement et les fonctions constexpr (pour améliorer les performances), les littéraux définis par l'utilisateur et les traits de type (pour les systèmes pour lesquels une sécurité maximale est critique), les pointeurs intelligents et std::array
(pour moins gâcher les ressources )
Cette classe de maître vous apprend à mieux utiliser les fonctionnalités de C ++ par rapport à l'embarqué. En particulier, il fournit des réponses à un large éventail de questions sur les limites uniques de ces systèmes. Cet atelier est enseigné en anglais.
Pavel Filonov - «Intégration continue pour C ++ - Développeur»
Pavel Filonov estime que le processus de développement ne doit pas se terminer après un commit, il présentera donc une master class sur l'intégration continue. Le but de la master class est de franchir la prochaine étape vers l'intégration continue (CI, Intégration continue en ingénierie) et d'automatiser la résolution des dépendances, l'assemblage et les tests unitaires pour toutes les plateformes cibles. En conséquence, les participants seront en mesure de déployer en toute indépendance toute l'infrastructure nécessaire à CI et de préparer un projet C ++ pour l'assemblage automatique et les tests unitaires.
Et ensuite?
Et puis vous devez venir à C ++ Russia 2019 Piter! La conférence se tiendra du 31 octobre au 1er novembre à Saint-Pétersbourg. Les billets peuvent être achetés sur le site officiel . Vous pouvez également vous familiariser en détail avec la version actuelle du programme (je vous rappelle qu'elle continue d'évoluer).
Une note importante sur les prix et les remises. Le système de billetterie peut émettre des tickets de quatre types: académique, personnel, standard et en ligne. Pourquoi c'est important: si vous achetez des billets vous-même, cela coûtera beaucoup moins cher qu'un billet pour la compagnie. Et si vous êtes étudiant, étudiant diplômé ou enseignant (et qu'il existe un document approprié pour confirmation), la remise est particulièrement impressionnante. Les conditions détaillées, bien sûr, doivent être lues sur le site - tout ce qui est écrit ci-dessus est à titre informatif uniquement.
En prévision de C ++ Russia 2019 Piter, vous pouvez regarder les enregistrements de deux conférences précédentes qui ont eu lieu ce printemps à Moscou et à Novossibirsk.En général, tous les enregistrements des dernières années sont parfaitement sur notre chaîne YouTube . Ainsi, vous pouvez évaluer visuellement la qualité des rapports.
Retrouvez-moi au C ++ Russia 2019 Piter!