Die moderne Welt von C ++ unterscheidet sich sehr von der, die wir in C ++ 98 gewohnt waren. Jemand bewundert dies, jemand nervt es, aber die Tatsache bleibt. Hier sind einige Themen, die die Entwickler heute begeistern:
- Moderne und neue Funktionen der C ++ - Sprache
- Funktionsprogrammierung
- Metaprogrammierung
- Multithreading, Parallelität, Asynchronität und alles in allem
- Wie man mit vorhandenen Werkzeugen lebt
In weniger als einem Monat wird es eine Konferenz geben, die versucht, diese Fragen zu beantworten: C ++ Russia 2019. Lassen Sie uns einen kurzen Blick darauf werfen, wie es ausgehen wird.

Moderne und neue Funktionen der C ++ - Sprache
Hier hatten wir in mehrere Richtungen gleichzeitig großes Glück. Erstens verbessert sich C ++ aktiv, die Anzahl wichtiger und nützlicher Tools wächst weiter. Nicht alle Sprachen haben so viel Glück - zum Beispiel gab es in dem kürzlich veröffentlichten Java 12 keine einzige produktionsbereite Funktion der Sprache oder eine wesentliche Änderung in den Bibliotheken.
Hat andererseits jeder ein klares Bild des allgemeinen Bildes aller Verbesserungen in C ++? Sind Sie sicher, dass Sie Ihre Werkzeuge richtig verwenden, und dies wird in Zukunft nicht mehr der Fall sein?
Und dann stellt sich heraus, dass auf unserer Konferenz beide Keynotes (Eröffnungs- und Abschlussberichte) von Personen stammen, die seit Jahren am Ausschuss teilnehmen. Sie haben einen solchen Job - ein Bild von allem im Auge zu behalten. Neben hervorragenden Berichten können Sie auch im Diskussionsbereich mit ihnen sprechen.
Der erste ist Anton Polukhin mit einer Geschichte über Bereiche, in denen C ++ als unverzichtbar angesehen wird , und zusätzliche Dinge, die in C ++ schön wären. Mit ihm haben wir kürzlich ein Interview über Habré veröffentlicht . Im Allgemeinen wurde das Thema der Teilnahme von Russen am Ausschuss sowohl in Habré als auch überall bereits ausführlich diskutiert (siehe, Yandex hat sogar einen Beitrag darüber in VK geschrieben). Sie können auf stdcpp.ru eine Liste der Vertreter anzeigen, jetzt ist es: Anton Polukhin, Anton Bikineev und Alexander Fokin.
Das zweite Mitglied ist Nicolai Josuttis. Er ist Autor der Bücher The C ++ Standard Library und C ++ Templates und seit fast zwanzig Jahren Mitglied des Standardisierungsausschusses. Sein Bericht wird wahrscheinlich einer der aktuellsten zum Thema „Zukunft und Moderne“ sein: „C ++ 17 - die größten Fallen“ soll über die Probleme hinter der Architektur sprechen, wer ist schuld und was machen.
Funktionsprogrammierung
Das nächste Thema, von dem ein Teil der Community brennt, ist FP. Auf Habré ist dieses Thema ziemlich weit verbreitet.
Nicht jeder in der Community glaubt, dass das Spiel die Kerze wert ist. Über der Debugging-Leistung der Ranges und dem Artikel von Aras Prankevichius wurden noch keine Lagerfeuer verbrannt. Viele fragen sich immer noch, was Monaden sind, warum sie gebraucht werden und benötigen Artikel mit lebendigen Bildern . Jemand schärft bereits einen Dolch und murrt "verwandelte mein wunderbares C ++ in eine Art Haskell".
Eines der wichtigsten Probleme mit AF ist, dass es nicht viele Spezialisten gibt. Jeder liebt es, es zu studieren, aber um es wirklich anzuwenden, gibt es Probleme damit. Es ist völlig ungeeignet, wenn eine Person aufrichtig glaubt, AF zu verstehen, aber damit nicht Hello World schreiben kann. Es gibt alle möglichen Extreme, wenn sich eine Person, die mit der Anwesenheit von Lambdas vertraut ist, sofort als König der funktionalen Programmierung betrachtet. Oder umgekehrt - bevor er die Halloworld schreibt, wird er in die Höhle gebracht, indem er sich „Kategorien für den arbeitenden Mathematiker“ und alle Bücher und Handbücher von Okasaki von Anfang an merkt.
Bitte folgen Sie nicht den Links, um diese Bücher zu lesen. Zuerst müssen Sie diesen Beitrag lesen und zur Konferenz gehen.
Die Branche braucht also jemanden, der sich mit C ++ in PHP auskennt, und wir haben ihn. Zunächst können Sie ein gutes Habro-Interview mit Ivan Chukich und Alexander Granin kennenlernen. Und ja, beide werden in C ++ Russland sein.
Alexander wird über monadische Parser sprechen. Ivan wird über "Nur-Verschieben-C ++ - Design" sprechen und eine von drei großen Schulungen abhalten - "Angewandte funktionale Programmierung in C ++" .
Und es gibt "Funktionen höherer Ordnung und function_ref" von Vittorio Romeo von Bloomberg und "Postmoderne unveränderliche Datenstrukturen" von Juan Pedro Bolívar Puente. Was ist postmodern? Aber komm und finde es heraus.
Metaprogrammierung und FP gehen Hand in Hand, aber die Situation ist genau umgekehrt. Wenn wir in FP untersuchen, wie dies in der Praxis angewendet werden kann, wurde in der Metaprogrammierung eine große Menge praktischer Informationen generiert, die systematisiert, realisiert und unsere Fähigkeiten in Bezug auf unsere eigenen Aufgaben verbessert werden müssen.
C ++ Russland hat einen großen Block, der diesem Thema gewidmet ist:
Jeder Bericht ist auf die eine oder andere Weise interessant, und wenn Sie anfangen, ihn offenzulegen, wird es nicht genug Hubrast geben. Der letzte Bericht enthält beispielsweise Spiel-Engines: gamedev hat seine eigenen Anforderungen für den gesamten Entwicklungsstapel, von Tools bis zur STL-Leistung, und hier stoßen Sie auf einen Live-Entwickler der Encore-Engine für das Spiel World of Tanks, der Sie über Boost.Python, Parameterreflexion, informiert Materialien für 3D-Modelle und andere spezifische Dinge. Im Allgemeinen sollten Sie die Beschreibungen sorgfältig lesen und verstehen, wohin Sie möchten.
Multithreading, Parallelität, Asynchronität und alles in allem
Trotz der Tatsache, dass es keinen dedizierten Block für zehn Berichte gibt, werden diese Themen in allen anderen Berichten auf die eine oder andere Weise behandelt. Wenn man zum Beispiel über FP spricht, ist es immer interessant, wie viel FP beim Schreiben von Multithreading hilft oder erschwert.
Und obwohl das Ausführungsmodell eine separate Koordinate für die Tiefe aller anderen Berichte festlegt, wird es einige spezielle Dinge geben: "Parallelität und Parallelität in C ++ 17 und C ++ 20/23" von wahrscheinlich dem bekannten Grimm Reiner und "Asynchrone C ++ - Entwicklung". .
Warum genau Asynchronität? In letzter Zeit hat die Welt große Fortschritte in diese Richtung gemacht. Integrierte Tools für die Arbeit mit Asynchronität werden in allen Sprachen von oben nach unten angezeigt, und C ++ war keine Ausnahme, z. B. TS C ++ - Erweiterungen für Parallelität . Wie kann man die Spreu vom Getreide trennen, wenn einige Evangelisten der Asynchronität versuchen, uns Asynchronität als Selbstwert zu verkaufen? Bei Konferenzen zu JavaScript und Java nehmen „asynchrone“ Berichte manchmal ein Drittel des Programms ein . Es ist schön, mindestens einen guten Bericht zu diesem Thema zu haben, was Pavel Novikov von Align Technologies tun wird .
Wie man mit vorhandenen Werkzeugen lebt
Die übrigen Berichte im Programm sind nicht in den oben genannten Kategorien enthalten, sondern an sich kleine Perlen. Beispielsweise ist das DevOps-Thema jetzt nicht weniger aktuell als der oben beschriebene Asynchronismus. Wie Sie wissen sollten, ist „Devops“ keine Person oder ein Beruf, sondern eine Kultur. Und diese Kultur baut auf Werkzeugen auf, von denen einige immer noch echte Schmerzen haben. Obwohl C ++ selbst schnell und blitzschnell ist, ist seine Montage langsam wie eine Schildkröte, und die klassischen Tools, auf die sich die DevOps-Kultur verlassen sollte, sind komplex und oft unzuverlässig. Dazu gehören beispielsweise verteilte Montagewerkzeuge, Verknüpfungsmethoden und unglückliche Module. Viktor Kirilov wird eine Präsentation „Der Leitfaden für Anhalter zu schnelleren Builds“ halten und vielleicht ein wenig helfen, mit diesem Schmerz umzugehen.
Eine solche Überprüfung stellte sich heraus. Was habe ich vergessen Intelligente Zeiger? Ja, und wir haben sie, bis zu zwei Berichte ( einer , zwei ). Was nicht in C ++ Russland.
Schulungen
Wenn regelmäßige Präsentationen nicht ausreichen, bieten wir umfassende Schulungen an. Jeder von ihnen dauert viele Stunden, berührt ein bestimmtes Thema und kann daher nicht gleichzeitig mit Berichten gehalten werden. Sie finden einen Tag vor dem Hauptprogramm, dem 18. April, statt.
Beschreibungen finden Sie auf den Links. Wenn Sie von der Hauptseite der Schulungen gekommen sind - klicken Sie auf die Schaltfläche "Details" - hier wird das Ticket ausgewählt und es wird angegeben, was auf Ihrem Laptop installiert werden muss.
Nächste Schritte
Das Berichtsraster ist noch nicht endgültig. Es blieb noch ein weiterer Monat (die Konferenz wird wie erwartet vom 19. bis 20. April stattfinden). Wenn Sie ein Teilnehmer sind, dh eine Anfrage - überprüfen Sie die E-Mail, wir haben Ihnen eine Umfrage gesendet. Dort sollten Berichte vermerkt werden, zu denen ich gehen möchte. Diese Umfrage ist sehr interaktiv. Die Antworten wirken sich auf die Verteilung der Berichte in den Hallen aus.
Ich erinnere Sie daran, dass Sie sich auf der offiziellen Website mit dem vollständigen Programm der Konferenz vertraut machen können , um herauszufinden, in welche Reihenfolge Sie gehen möchten.
Dort können Sie Tickets kaufen . Bitte beachten Sie, dass es verschiedene Arten von Tickets gibt. Wenn Sie den für Sie geeigneten Typ auswählen, können Sie ernsthaft sparen. Wenn Sie nicht live an der Konferenz teilnehmen können, dh die Möglichkeit, online teilzunehmen, gibt es hierfür eine separate Kategorie von Tickets.