C ++ Russland 2019. Ein kleiner Bericht vom Veranstaltungsort und der Ankündigung der nächsten Konferenz in St. Petersburg

Die C ++ Russia Conference ist die mit Abstand schwerste und gleichzeitig die Tube Conference der letzten Zeit. Es fand im Kongresspark des Ukraine Hotels in Moskau statt und versammelte mehr als sechshundert Menschen.


Einer der Afterparty-Kameraden sagte: "Ich habe versucht, C ++ von der Schule zu lernen, aber ich stoße ständig auf etwas Neues." Hier sprach fast jeder Bericht über etwas Neues. Manchmal - über etwas völlig umwerfendes, das für immer bei dir bleiben wird.


C ++ Russland war schon immer durch die Anwesenheit von Sonderrednern und Sonderberichten gekennzeichnet, und diesmal war dies keine Ausnahme. Werfen wir einen Blick darauf, was an diesen beiden geschäftigen Tagen passiert ist.



Videos und Fotos


Viele Leute gehen zu solchen Artikeln, um zwei klassische Fragen zu stellen: "Wann werden die Videos sein?" und "Wann werden die Fotos sein?"


Aufzeichnungen über Berichte stehen allen Teilnehmern unmittelbar nach dem Ausfüllen des Feedback-Formulars zur Verfügung. Nach ungefähr einem Monat werden über denselben Link alle Videos neu geladen , jedoch in bester Qualität. Die Qualität, die jetzt ist, ist gut, aber es kann noch besser sein.


Die Möglichkeit, ein Feedback auszufüllen, endet an diesem Samstag um 23:59 Uhr . Müssen rechtzeitig sein!


Diejenigen, die nicht an der Konferenz teilgenommen haben, werden jedoch viel länger auf die Aufzeichnung von Berichten warten. Höchstwahrscheinlich werden wir sie näher am Datum des nächsten C ++ Russland veröffentlichen.


Fotos von Teilnehmern sind bereits auf VKontakte . Die Liste der Fotos wird ebenfalls aufgefüllt, daher ist es am besten, die gesamte Gruppe auf einmal zu abonnieren.


Geltungsbereich


Wie wir einmal erwartet haben, können alle Berichte bedingt in Kategorien unterteilt werden:


  • Moderne und neue Funktionen der C ++ - Sprache;
  • Funktionale Programmierung;
  • Metaprogrammierung;
  • Multithreading, Parallelität, Asynchronität und alles in allem;
  • Wie man mit vorhandenen Werkzeugen lebt.


Auf dem Weg durch die Konferenz muss jeder einen bestimmten Zahlenschleifer zusammenstellen und herausfinden, an was Sie live teilnehmen möchten und was Sie in der Aufnahme sehen möchten.


Es gibt verschiedene Ansätze, um das Programm zu durchlaufen. In einem wählen Sie zwischen interessanten Themen. In einem anderen Fall gehen Sie zu bestimmten Rednern, die Ihnen garantiert interessante Themen erzählen. Seltener hören die Leute Vertretern bestimmter Unternehmen zu.


Ich hatte eine sehr einfache Strategie: Wir wählen Themen zu Compilern, Metaprogrammierung und Spielen aus und gehen in ihnen zu berühmten Rednern. Es war einfach, sich für eine solche Strategie zu entscheiden.


Für die Rezensenten der Aufzeichnung blieb das gesamte Programm nicht nur auf der Website , sondern wurde auch durch Folien ergänzt. Sie können das Programm erneut durchgehen, jetzt Berichte nach einem anderen Prinzip auswählen und sozusagen eine zweite Konferenz für sich selbst arrangieren.


Pluralismus von Meinungen und BOF


Es ist klar, dass nicht jeder gleichzeitig an allem interessiert ist. Manchmal ist es besonders hell zu sehen. Beispielsweise schlug einer der Teilnehmer bei einer BOF-Sitzung zum Thema „C ++ gegen alle“ vor, über C ++ Enterprise Edition zu diskutieren, und ein Teil des Publikums verstand dies nicht sofort. Im Gegenteil, es war sehr seltsam für mich, Träume darüber zu hören, wie in anderen Technologien (Golang, JS und Java, in denen ich für eine Minute etwas verstehe) alles rosig ist - das ist nicht wirklich so!



Es ist interessant, dass wir am Morgen (offensichtlich) zu den Berichten kommen, aber wir können die Position der Komplizen erst am späten Nachmittag vollständig verstehen.


Apropos BOF-Sitzungen: Sie erwiesen sich als besonders gut. Für diejenigen, die plötzlich vergessen haben, ist BOF so etwas wie ein abendlicher „runder Tisch“, aber ohne Tisch und Redner - nur Moderatoren und Teilnehmer. Trotz des anfangs hollywood-Themas „C ++ gegen alle“ gelang es uns nicht nur, nicht gegeneinander zu kämpfen, sondern auch nach der offiziellen Fertigstellung noch lange zu kommunizieren. Genauer gesagt, bis zur Schließung der Website, als die Verwaltung für uns kam und darum bat, die Diskussion an einen anderen Ort zu verlegen (einige taten dies und fuhren in der nächsten Bar fort).


Natürlich war ich nicht beim zweiten BOF, aber gemessen an der Art und Weise, wie sich das Publikum zusammenschloss, stellte sich heraus, dass auch dort alles gut war. So etwas, unorthodox oder so, schau dir einfach dieses Foto an.



Reservierung für Redner, Sponsoren und alle anderen


Das Problem beim Schreiben eines Habraposts über die Konferenz waren viele Dinge. Wenn Sie anfangen, alle Redner, alle Sponsoren aufzulisten, bringen Sie ein Foto von jeder coolen Sache auf jeden der Stände - dieser Beitrag wird niemals enden. Jeder, der hier erwähnt wird, ist zufällig hierher gekommen und nicht auf der Grundlage eines gerechten Prinzips.


Entdeckung


Als Moderator der Online-Sendung konnte ich den gesamten Bericht nie von Anfang bis Ende sehen. Dies ermöglichte es jedoch auch, mehr als einen Bericht innerhalb des Slots zu besuchen, was sehr spezifisch ist. Gleiches gilt für alle, die Urlaub machen - zum Beispiel für Standmacher an Firmenständen.


Es gibt jedoch mehrere Momente, in denen sich alle Teilnehmer gleichzeitig versammeln, und es gibt keine Wahl - Keynotes, Öffnen und Schließen.


Bei der Eröffnung freute ich mich, dass Sergey Platonov sermp und Andrey Dmitriev real_ales von der JUG.ru Group auf derselben Bühne standen. Jetzt ist die Konferenz in den Händen vieler Menschen, und Sergei übernahm in diesem Prozess die stolze und wichtigste Rolle des Programmdirektors. Der König lebt, es lebe der König! :-)



Eröffnungsrede


Ein weiterer Punkt, den wir alle gesehen haben und über den wir spekulieren können. Gastgeber war Nicolai Josuttis, Autor der C ++ Standard Library und der C ++ - Vorlagen.



Für einige werden solche Bücher als heiliger Text und Wissen wahrgenommen, das oben angegeben wurde. Im Gegenteil, jemand ist skeptisch, dass die guten alten Zeiten, als Bücher geschrieben wurden und es keinen Bezug gab, nicht so alt und nicht so freundlich waren und ihre Autoren 2019 mit Argwohn betrachtet werden sollten.


Und hier sehen wir Nikolai mit einem anderen Unvergänglichen über "modernes C ++" - und es scheint, dass dies einer der vernünftigsten Berichte zu diesem Thema ist. Wahrscheinlich wirkt es sich irgendwie darauf aus, dass er seit fast zwanzig Jahren Mitglied des Normungsausschusses ist. Im Laufe des Jahres erstellen wir manchmal Textzusammenfassungen und Abschriften von Berichten für Habr, und es scheint, dass dies der allererste Kandidat für eine detaillierte Analyse ist.


Oleg Fathiev, "Die Entwicklung der Metaprogrammierung"


Dies ist ein Bericht, der mich mit einer (angenehmen?) Leere in meiner Seele zurückließ. Tatsache ist, wenn ich eine Art C ++ - Code sehe, dann ist es normalerweise etwas in C ++ 98 im Stil von "C mit Klassen", und es ist geschrieben, obwohl es extrem ekelhaft aussieht, aber so einfach und ungeschickt wie möglich. Olegs Bericht ist nicht so. In diesem Bericht befasst sich Oleg mit dem Problem, wie Code für die Arbeit mit Typlisten geschrieben wird, ähnlich wie bei Boost.Hana.



Wie weit sind Sie bereit, guten Code zu schreiben - gut dank Metaprogrammierung? Und was wird in Zukunft mit diesem Code passieren? Denken die Entwickler des Standards wirklich über Ihre Verwendungsmöglichkeiten nach und kümmern sich darum? So viele Fragen.


Anton Dunchev, "Metaprogrammierung für die Spiel-Engine"


Ich habe mir diesen Bericht nur angesehen, weil es um die Game Engine und Wargaming geht. Ich denke, viele Entwickler haben gerade deshalb programmiert, weil sie in ihrer Kindheit Spiele gespielt haben und dasselbe tun wollten. Und hier haben wir einen Live-Entwickler des Client-Teils von World of Tanks - das ist genau der Teil, in dem die interessantesten Dinge wie Geometrie sind. Dies ist ein weiterer Vortrag über Metaprogrammierung, diesmal über die Reflexion nativer Funktionen in Python und warum Boost.Python nicht benötigt wird.



Im Allgemeinen ist das gleichzeitige Schreiben eines Programms in mehreren Sprachen eine sehr interessante theoretische und praktische Frage, die aus völlig unterschiedlichen Blickwinkeln betrachtet werden kann. Jedes Mal, wenn Sie sich immer mehr perverser Methoden bewusst werden, mit denen Sie immer anspruchsvollere Dinge tun können. Meine letzte Liebe ist zum Beispiel GraalVM, eine polyglotte virtuelle Maschine, mit der Sie in C ++ mit Einfügungen in Python oder in Python mit Einfügungen in C ++ schreiben können, und es ist nicht überraschend, dass ich mich an diesen Bericht gehalten habe, als ob ich einen Liter Kleber „Moment“ verwendet hätte.


Die Hauptfrage für den Entwickler ist nicht die Endbenutzersoftware, sondern die Bibliothek - „warum“. Warum sollten Benutzer das verwenden, was Sie sich ausgedacht haben? In diesem Fall gibt Anton eine gute Erklärung: Fast jede Spiel-Engine basiert auf der Interpretation von Spielinhalten und der Reflexion interner Strukturen, um Feedback für Spielobjekte und Spielelogik zu organisieren, und wir brauchen Python, und hier können wir uns in vollem Wachstum umdrehen!



Mikhail Matrosov, Alexander Voronkov, „Wie wir den Compiler aktualisiert und plattformübergreifend unterstützt haben“


Die Rivalen des Berichts waren Reaktivismus und Initialisierung. Ein Kamerad sagte, dass er in diesem Slot keine Wahl habe - wir müssen zur Reaktivivina gehen. Ich hatte einfach keine Wahl - Sie müssen zu den Compilern gehen.


Erinnern Sie sich an die vorherige Bemerkung zur Frage „Warum?“ Hier sehen Sie beispielsweise das coolste System zur Kompatibilität mit Toolchain-Upgrades, und dann fragt der Chef - warum? Natürlich deshalb!



Begründung des Werts von Arbeit für Führungskräfte, Verwendung von Conan (wir bei BOF haben herausgefunden, dass jemand überhaupt nichts über seine Existenz weiß!), Visual Studio-Upgrades und Reproduzierbarkeitsprobleme, ein Update in C ++ 17 - viele Life-Hacks auf dem Weg zur Einführung cooler Funktionen .



Und doch ist es im Allgemeinen interessant, wie zwei Personen gleichzeitig einen guten Bericht erstellen können. Dies ist ein sehr unbeliebtes Format, da es die Vorbereitung der Sprecher auf wahnsinnige Weise erschwert - die Kosten für das Protokoll und die Synchronisation. Gut gemacht.


Ivan Čukić, „Nur-Move-C ++ - Design“



Mein ganzes Leben lang habe ich KDE verwendet (außer in seltenen Fällen, in denen ich Xfce über freeNX überspringen musste). Ich erinnere mich, wie das Plasma fiel und dann aufhörte. Manchmal verbringt man lange Abende damit, mit imaginären KDE-Entwicklern zu sprechen, die versuchen, etwas Außergewöhnliches zu tun. Ich beschwere mich im Gegenteil nicht über KDE - es wurden so viele Anstrengungen unternommen, gerade weil ich es sehr liebe. Und jetzt kommt ein Mann zur Konferenz, der sich noch mehr Mühe gibt als Sie . Meistens, weil er kein Benutzer ist, sondern der Entwickler von Plasma und Aktivitäten.



Oh ja, über den Bericht. Dies ist ein weiterer Bericht, den jeder kennen muss, wie es Nicolai Josuttis getan hat. Sein Name änderte sich im letzten Moment. Ursprünglich war es nur "Nur-Verschieben-C ++ - Design", wurde aber zu "Nur-Verschieben-C ++ - Design - Teil I". Dies liegt daran, dass das betreffende Thema sehr umfangreich ist und weiter wächst. Ivan betonte, dass es schlecht sei, die Berichte "Teil I" zu nennen, weil "Teil II" normalerweise nie passiert. Aber hier ist es offensichtlich, dass die Informationen leicht in ein paar weitere Teile eingegeben werden können. Ivan beschränkte sich nicht darauf, Sprachmerkmale (wie Konzepte usw. - na ja, verstehen Sie) zu beschreiben, aber irgendwann krempelte er die Ärmel hoch, beschäftigte sich mit Leistungsproblemen, und der Rest des Berichts ging mit Assembler-Listen für die Hälfte an Godbolt Bildschirm. Fünfzehn Minuten, nachdem der Bericht über die Fragen vollständig aufgewendet worden war. Im Allgemeinen scheint es ein sehr heißes Thema zu sein.


Alexander Granin, Monadische Parser


Im Allgemeinen ist mit funktionaler Programmierung irgendwie traurig. Kürzlich habe ich mir überlegt, welchen Artikel ich in Habr übersetzen soll, zufällige Blogs mit Hackernews gelesen und geweint. Es gibt eine Gruppe von Führungskräften, die nichts in der FP verstehen, aber verzweifelt versuchen, so zu tun, als ob sie es verstehen, indem sie seltene kluge Wörter in einer anderen Reihenfolge kombinieren, in der Hoffnung, dass jemand es kaufen wird. Sie finden sich manchmal wieder, wenn sie Wörter aus Wikipedia in der falschen Reihenfolge kopieren. Es gibt eine Gruppe, die im Gegenteil versteht, aber bereits durch frühere Erfahrungen mit Erklärungsversuchen verbrannt wurde und daher mit allgemeinen Worten davonkommt und schöne Präsentationen zeichnet. Einige von anderen zu trennen ist schwierig, besonders wenn Sie selbst nicht verstehen. Sowohl dies als auch das in Form einer Präsentation ähnelt einem seltenen Müll, aus dem nicht klar ist, ob der Autor mindestens eine Todo-Liste mit einer Weboberfläche schreiben kann.


Vor diesem Hintergrund Alexanders "Monadic Parsers" - ein Hauch Luft. Erstens kann der Moderator in Haskell programmieren und tut dies professionell. Zweitens ist dies eine zusammenhängende Erzählung mit sauberen, schönen Folien, die nicht mit Internet-Memos, sondern mit Code gefüllt sind. Drittens ist alles klar, dass es viel wert ist.



Der Bericht untersuchte monadische Parser: Wie unterscheidet sich dieser Ansatz von anderen Parsing-Arten (kombinatorische Parser a la Boost :: Spirit, Parser-Generatoren, Ad-hoc-Lösungen wie hochfliegende Finite-State-Maschinen usw.), welche Vor- und Nachteile hat er? und was sind die Manifestationen solch wichtiger Konzepte der funktionalen Programmierung als Funktor, Anwendungsfunktor und Monade. Im Allgemeinen alles, was Sie zu diesem Thema wissen wollten (und nicht wollten).


Viktor Kirilov, „Der Per Anhalter durch schnellere Builds“


Wenn Sie nach Erfahrung mit anderen Technologien in C ++ einsteigen (oder sogar aus dem Augenwinkel schauen), wird es aufgrund der Geschwindigkeit der Montage etwas gruselig. Nachdem ich einen Artikel über Habr geschrieben hatte, wie ich den Chromium-Browser debuggte, war mein Hauptproblem nicht die Komplexität der Aufgabe (die Aufgabe ist sehr einfach), sondern dass Chromium stundenlang zusammengestellt werden kann. Wenn Sie sich an JavaScript oder Java gewöhnt haben, nachdem Sie einige Buchstaben im Code geändert haben, starten Sie die Tests sofort neu. Für den Chromium-Code habe ich unangenehme Neuigkeiten. Vielleicht sehen Sie die Ergebnisse erst am Morgen. Es tut weh, es tut weh.


In diesem Bericht beschloss Victor, unser Leiden zu lindern, indem er über die wichtigsten Möglichkeiten zur Optimierung der Montage sprach. Genauer gesagt ist all dies wahrscheinlich vielen erfahrenen Entwicklern bekannt, aber für Anfänger ist es von unschätzbarem Wert.



Der Bericht hinterließ einen gemischten Eindruck in meiner Seele. Das heißt, zuerst lernst du viele Möglichkeiten, um Kleinigkeiten zu sparen, und dann erklären sie dir, dass dies alles nicht notwendig ist, weil es bald Module geben wird. Aber im Moment gibt es keine Module, und Sie müssen immer noch all diese alten Tricks anwenden, und dann muss all diese Arbeit weggeworfen werden!


Und doch sind Module (und Coroutinen) teilweise nur in Clang und Konzepte nur in GCC. Und was jetzt tun? Es tut weh, es tut weh. Aber nach dem Bericht wurde es etwas besser.


Diskussionsbereiche


Eine Besonderheit der Konferenzen der JUG.ru-Gruppe ist die Verfügbarkeit obligatorischer Diskussionszonen. Der Sprecher läuft nicht direkt nach dem Bericht unbekannt davon, sondern kommuniziert weiterhin auf einer speziell dafür vorgesehenen Site. Leider oder zum Glück zeichnet niemand Videodiskussionen in Diskussionsbereichen auf. Zum Glück - denn auf diese Weise können Sie sehr sensible Themen diskutieren und schließlich zugeben, dass Sie etwas nicht verstehen :-)



Verbleibende Berichte


Es gab viel mehr Berichte. Jetzt blieb ich mitten am zweiten Tag stehen. Sie können endlos darüber sprechen, daher lohnt es sich, diese Diskussion auf unsere zukünftigen Beiträge zu Habré zu verlagern. Geben Sie Transkripte frei, führen Sie eine detaillierte Analyse der Abstracts durch und so weiter. Abonnieren Sie den Blog der Firma JUG.ru Group und warten Sie auf die Neuigkeiten!


Konferenzteilnehmer (einschließlich derjenigen, die die Live-Übertragung gesehen haben) können alle Berichte in der Aufzeichnung sehen. Sie sollten bereits Einträge haben, wenn Sie ein Feedback ausgefüllt haben - überprüfen Sie Ihre E-Mails. Der Rest muss eine ziemlich anständige Zeit warten.


Um die Beschreibung der Berichte zu vervollständigen, hier ein Foto des unersetzlichen Anton Polukhin aus der Schlussrede! Anton ist sehr cool. Es besteht jedoch die Befürchtung, dass er so oft nach der Arbeit an Standard und Boost gefragt wird, dass er eines Tages einfach aufhört zu antworten ... aber bisher haben wir die Möglichkeit, alles herauszufinden, was benötigt wird!





Ausstellung


In der Mitte des Geländes befand sich eine große Ausstellung. Viele Unternehmen aus ganz Russland haben sich versammelt, um uns einen echten Urlaub zu ermöglichen. Sie können Tischfußball fahren, an Gewinnspielen teilnehmen und so weiter. Alles, was Sie vom Ausstellungsbereich der Konferenz erwarten können.



Wir kamen nicht nur aus Russland - zum Beispiel gab es einen Stand der CoreHard-Community aus Weißrussland, die auch ihre Konferenz in Minsk abhielten.



Zwischen den Fällen könnten Sie ein Buch in einem spontanen Buchladen kaufen.



Außerdem haben wir jetzt immer die sogenannte Demo-Bühne. Dies ist eine solche Plattform, auf der entweder Live-Berichte veröffentlicht oder ein Video von der Szene einer der Hallen gesendet wird.



Dort werden zeitweise alle möglichen Preise gespielt. Zum Beispiel erklärte Denis Kalanov, warum Sportturniere seit langem viel mehr als „nur Freizeit für Unternehmen“ sind, und fasste die Ergebnisse des zweitägigen Kickerturniers zusammen.



Afterparty und was? Wo? Wann? "


Am Ende des ersten Tages konnte man nicht nur in die Bofs gehen, sondern auch an der Sportsession „Was? Wo? Wann? " (Freundschaft, wie Sie sich erinnern) gewann und beendete den Tag mit einer feurigen Afterparty.




Was weiter? Nächste C ++ Russland 2019 Piter


Wie Sie sich vorstellen können, kann C ++ Russland nach einem solchen Erfolg hier nicht aufhören. Die nächste Konferenz findet im Herbst statt - vom 31. Oktober bis 1. November in St. Petersburg. Der Veranstaltungsort wird noch geklärt - Sie müssen den für so viele Personen am besten geeigneten Veranstaltungsort auswählen.


Wenn Sie bereit sind, Ihren eigenen Bericht zu erstellen, ist es Zeit, dies zu tun. Sie müssen dem Link folgen und alles, was dort geschrieben steht, sorgfältig ausführen.


Mehrere Sprecher sind bereits bekannt.


Erstens ist dies Eric Nibler selbst - ein Mann, der dank seiner Arbeit auf dem Gebiet der Ranges-Entwicklung in C ++ 20 und der Range-v3-Bibliothek mittlerweile fast jedem bekannt ist. Er ist außerdem Senior Developer bei Facebook, aktives Mitglied des Standardisierungsausschusses, Autor mehrerer Bibliotheken in Boost und Mitglied des Boost-Lenkungsausschusses. In der Tat einer der gefragtesten Redner auf der C ++ - Konferenz.


Der zweite bekannte Entwickler ist Sean Parent, ein leitender Wissenschaftler und Architekt bei Adobe, der seit 1993 an Photoshop und zuvor bei Apple beim Übergang zu PowerPC gearbeitet hat. Er arbeitete auch ein Jahr bei ChromeOS, kehrte aber zu Adobe zurück. Apple, Google, Adobe - zu verschiedenen Zeiten wurden diese Unternehmen "Traumunternehmen" genannt und er besuchte sie alle. Sie können auch im Diskussionsbereich mit ihm chatten und einige interessante und unangenehme Fragen stellen (z. B. Fragen zur Notwendigkeit, die JavaScript-Engine in die C ++ - Infrastruktur von Photoshop zu integrieren, oder was Sie sonst noch von einem der besten Adobe-Entwickler lernen möchten).


Natürlich bleibt Anton Polukhin von Yandex.Taxi weiterhin bei uns. Anton ist der Vertreter Russlands in ISO bei internationalen Treffen der Arbeitsgruppe für Standardisierung C ++. Der Autor mehrerer akzeptierter Vorschläge für den C ++ - Sprachstandard. Autor der Boost-Bibliotheken TypeIndex, DLL, Stacktrace und aktiver Betreuer Any, Conversion, LexicalCast, Variant. Er ist Autor des Boost C ++ Application Development Cookbook und der Second Edition.


Und schließlich Alexander Bychuk vom Kaspersky Lab. Seit 2007 entwickelt Alexander Middleware und ein elektronisches Dokumentenmanagementsystem. All dies wurde in C und C ++ geschrieben, daher ist C ++ Enterprise Edition für Alexander keine Fiktion, sondern tägliche Arbeit. , — , . MQ-Brokers , , .


C++ Russia 2019 , .


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

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


All Articles