
Was haben diese Leute gemeinsam, außer dass sie alle in der C ++ - Welt bekannt sind?
- Sean Eltern
- Eric Niebler
- Marshalllow
- Bryce Adelstein Lelbach
- Anton Polukhin
- Andrey Davydov
Antwort: Alle werden nach C ++ Russland kommen. Jetzt, da der Sommer vorbei ist und alle aus dem Urlaub zurück sind, ist es Zeit, auf die nächste große C ++ - Konferenz zu warten: C ++ Russia 2019 Piter . Es wird nicht nur von Personen aus dieser Liste, sondern auch von vielen anderen internationalen Rednern angesprochen. 30 Berichte, 2 volle Tage von 10 bis 19 Uhr, keine einführenden Geschichten und keine Dokumentation über Silben - sofort solider Hardcore.
Dies stellte sich als eine der schnellsten und qualitativ am besten organisierten Konferenzen heraus. Die Hälfte des Programms wurde im Sommer bekannt: Die Redner wissen genau, was sie in C ++ Russland sagen wollen. Jetzt hat sich das Programm fast stabilisiert und es ist Zeit, den Schleier der Geheimhaltung zu öffnen.
Wir unterteilen alle Berichte in „Planungskategorien“, die wir dann mit interessanten Themen füllen. Hier sind sie:
- Fähigkeiten neuer Standards
- Praktisches C ++
- Die Infrastruktur
- Multithreading
- Metaprogrammierung
- Funktionsprogrammierung
Die Kategorien werden in absteigender Reihenfolge der Anzahl der Berichte dargestellt: Ausgehend von neun Berichten über neue Standardfunktionen und endend mit dem derzeit einzigen Bericht zum Funktionalismus - „Tagging zum Typ zur Kompilierungszeit“ von Ivan Chukich. Es gibt noch einige weiße Flecken im Programm, die sich in den nächsten Wochen buchstäblich füllen werden. Mal sehen, was als Ergebnis passiert ist.
Headliner
Alle Redner sind bekannte Persönlichkeiten in der Community, über die man endlos schreiben kann. Lassen Sie uns zumindest ausführlich über diejenigen sprechen, die wir vor dem Kat aufgelistet haben.
Sean Parent ist einer der führenden Forscher und Architekten im Bereich Adobe Mobile. Er hat eine glänzende Karriere in weltberühmten Unternehmen entwickelt. In der Zeit von 1988 bis 1993 half er Apple beim Schreiben ihrer berühmten Betriebssysteme für PowerPC. Seit 1993 begann er mit der Entwicklung von Photoshop, verbrachte 2009 bei Google, entwickelte ChromeOS und kehrte zu Adobe zurück. Was kann uns eine Person mit einer so reichen Geschichte sagen? Momentan finden Sie auf YouTube viele Videos mit seiner Teilnahme, zum Beispiel - eine Reihe von Berichten Better Code , die für sich selbst sprechen. Dies ist nicht das erste Mal, dass wir bei C ++ Russia waren: Zu Beginn der Konferenzgeschichte, im Jahr 2015, war er es, der den ersten Eröffnungsbericht machte , und 2017 führten wir ein halbstündiges Interview mit ihm. Alles, was Sean Parent sagt, ist in Tiefe und Ausarbeitung unterschiedlich. Es handelt sich nicht um „Look and Forget“ -Material, sondern um etwas, an das man sich erinnern und das man immer wieder zurückkommen sollte.
Jetzt fliegt er mit einem neuen Bericht aus der BetterCode: Relationships- Reihe zu uns, und das möchten Sie auf keinen Fall verpassen. Aus diesem Grund wurde der Bericht von der Keynote der Konferenz ausgewählt - alle Teilnehmer können ihn sehen, bevor sie sich in separate Räume aufteilen.
Die zweite Keynote wird von Eric Niebler geleitet . Hier wäre es, die Geschichte zu beenden, da sein Name in letzter Zeit dank Standard Ranges mehr als öffentlich bekannt wurde und die Nibloide , die zum Begriff geworden sind (siehe Markup auf CppReference ), nach ihm benannt sind. Aber im Allgemeinen ist das alles nur ein Hype, und er hat viel für C ++ getan.
Eric ist aktives Mitglied des C ++ Standardization Committee, ein leitender Entwickler bei Facebook, und zu diesem Zeitpunkt begann er, sich mit Reichweite zu beschäftigen. In Zeiten vor Facebook war er Berater und arbeitete sowohl einzeln als auch mit BoostPro Computing . Im Rahmen des Boosts schrieb er nicht nur mehrere seiner Bibliotheken und fungierte als Release Manager, sondern wurde auch Mitglied des Boost Steering Committee, das sich (laut Name) mit strategischen Entwicklungsfragen befasst. Erics Modeerscheinung ist das Schreiben von kraftvollem und gleichzeitig elegantem Code, der wunderschöne Abstraktionen entwickelt (die man im Allgemeinen in Bereichen sehen kann ... oder nicht, je nach Vorlieben). Ebenso wichtig ist, dass er Gedanken nicht nur mit Code, sondern auch in Form von verständlichen, verständlichen Berichten vermitteln kann.
Eric kommt mit dem Vortrag "Eine einheitliche Abstraktion für Async in C ++" . Kurz zum Problem: Die Asynchronität in C ++ befindet sich jetzt ganz unten und muss repariert werden. Standardwerkzeuge wie Versprechen, Futures, Threads, Sperren und sogar std::async
- alle funktionieren entweder ineffizient oder nur kaputt oder beides gleichzeitig. Horror. Schlimmer noch, es gibt keine Standardmethode, um genau zu sagen, wo die Arbeit erledigt werden soll. Trotzdem haben wir eine Reihe von C ++ - spezifischen Aufgaben, die dies erfordern: parallele Algorithmen, heterogenes Computing, Netzwerk und E / A, reaktive Streams ... alles kritische Kerntechnologien, die seit Jahren auf eine Standardabstraktion warten, um die Idee des asynchronen Computing widerzuspiegeln. In diesem Bericht wird Eric mit uns die Forschungsergebnisse des Ausschusses untersuchen, in denen die grundlegenden Operationen hinter asynchronen Berechnungen ermittelt wurden. Wir werden sehen, warum sich Futures und Versprechen so stark verlangsamen, was ein Executor ist, was zwischen Rückrufen und Coroutinen üblich ist und wie die Abstraktion „Task“ (die jetzt von F & E auf Facebook aktiv untersucht wird) dieselbe Revolution in der Asynchronisation bewirken kann, die mit dem Aufkommen von Iteratoren in stattgefunden hat regulärer synchroner Code.
Wenn Eric ein cooler Ingenieur und Forscher ist, der selten passend spricht, dann ist Marshall Clow der Star internationaler Konferenzen. Wenn du zu YouTube gehst und seinen Namen in die Suche eingibst, wird YouTube zu seiner persönlichen Homepage. CppCon, C ++ Now, ACCU, EuroLLVM - alles, was Sie sich vorstellen können. Und jetzt ist hier C ++ Russland. Interessanterweise ist er bei alledem nicht nur ein regelmäßiger Evangelist, sondern C ++ - ein Entwickler mit 35 Jahren Erfahrung, der ursprüngliche Autor von Boost.Algorithm
(und im Allgemeinen der Beitrag von Boost seit über 15 Jahren), der Leiter der Arbeitsgruppe für Bibliotheken im Komitee C ++ Standardisierung und Hauptentwickler von libc ++ (Standardbibliothek für LLVM). Eine lebende Legende und eine Person, die meisterhaft in C ++ geschrieben hat, als die Hälfte derjenigen, die diesen Text lesen, noch nicht geboren wurde.
Marshall wird mit dem Bericht „Härten der C ++ - Standardvorlagenbibliothek“ geliefert. Das Wesentliche ist: Da die Standardbibliothek von allen hintereinander verwendet wird, sollte sie sehr gut geschrieben sein und nirgendwo kaputt gehen. Der Vortrag widmet sich einer Diskussion von Techniken und Tools, mit denen libc ++ von LLVM diese Anforderungen erfüllt: Debugging, Testsuiten und Abdeckung, statische und dynamische Analyse, Fuzzing. Natürlich richtet sich dieser Bericht nicht nur an LLVM-Entwickler, jeder kann seine eigenen Ideen daraus ziehen und seine eigenen Schlussfolgerungen ziehen.
Bryce Adelstein Lelbach hat C ++ etwas weniger studiert als Marshall, aber er hat etwas zu überraschen. Er ist einer der weltweit führenden Anbieter in der C ++ - Community. Seine soziale Aktivität besteht darin, dass Bryce jetzt Programmdirektor der wichtigsten C ++ - Konferenzen ist - CppCon und C ++ Now, Leiter der C ++ - Benutzergruppe in San Francisco und Silicon Valley. Im Standardisierungskomitee nimmt er an JTC1 / SC22 / WG21 teil, ist Vorsitzender der Tooling Study Group (SG15) und des Library Evolution Incubator (SG18) und arbeitete in C ++ 17 an einer langen Liste von Dingen (parallele Algorithmen, Executoren, Futures, Sender / Empfänger, mehrdimensional Arrays, Module). Bryce leitet unter anderem das CUDA-Entwicklungsteam bei NVIDIA, hilft zeitweise LLVMLinux und engagiert sich für Boost.
Bryce kommt mit einem Vortrag über "The C ++ 20 Synchronization Library" . Seit C ++ 11 herausgekommen ist, sind mehr als ein Dutzend Jahre vergangen, die Welt hat sich verändert! In den Tagen von C ++ 11 waren Multi-Core-Prozessoren bereits fest etabliert, aber die normale Anzahl von Kernen betrug zwei oder vier. Alles, was mehr als zehn ist, wie das alte Volk, wurde durch das Wort "viele" angezeigt. "Zwei", "vier" und "viele". Jetzt ist es normal, Dutzende von Zielen zu haben und Synchronisationsverzögerungen von einer ganzen Millisekunde zu ertragen. Es ist üblich geworden, Zehntausende von Fäden zu haben, und das Wort "viele" bedeutet jetzt "Hunderttausende". Vor zehn Jahren war es unwahrscheinlich, dass sich jemand die aktuellen Probleme des Multithreading klar vorstellen konnte. Mit herkömmlichen Tools sind wir heute entweder mit einer unannehmbar hohen Latenz oder mit unannehmbaren Inhalten zum Synchronisieren von Threads konfrontiert. Die C ++ 20-Bibliothek bietet neue Lösungen - einfache Grundelemente, die mit Hunderttausenden von Threads arbeiten können. std::atomic::wait
, std::atomic::notify_*
, std::atomic_ref
, std::atomic_ref
, std::counting_semaphore
std::latch
, std::barrier
... Dieser Bericht besteht aus einer Reihe von Beispielen, anhand derer wir lernen werden, wie man ihn verwendet Alle diese Tools, um eine moderne Anwendung zu erstellen, die parallel auf nahezu jeder Hardware ausgeführt werden kann, von eingebetteten und Server-CPUs bis hin zu neuen GPUs.
Der nächste Redner ist der berühmte russische Entwickler Anton Polukhin . Bekannt für Berichte über Bereiche, in denen C ++ als unverzichtbar angesehen wird, und zusätzliche Dinge, die in C ++ gut zu haben wären. Vertreter Russlands in der ISO bei internationalen Treffen der Arbeitsgruppe für Standardisierung C ++, Autor mehrerer akzeptierter Vorschläge für den Standard der C ++ - Sprache. In Vorbereitung auf die vorherige Konferenz haben wir ein Interview mit ihm über Habré veröffentlicht . Im Allgemeinen wurde das Thema der russischen Beteiligung am Ausschuss sowohl in Habré als auch überall bereits ausführlich diskutiert (siehe, Yandex hat sogar einen Beitrag dazu in VK geschrieben), und jetzt wollen wir dieses Thema nicht öffnen. Sie können auf stdcpp.ru eine Liste der Vertreter anzeigen, jetzt ist es: Anton Polukhin, Anton Bikineev und Alexander Fokin. Anton ist auch Autor mehrerer Boost-Bibliotheken: TypeIndex, DLL, Stacktrace unterstützt aktiv Any, Conversion, LexicalCast, Variant. Er hat das Boost C ++ Application Development Cookbook und die Second Edition geschrieben.
Diesmal kommt Anton mit dem Bericht „C ++ Taxi Tricks“ an (der Bericht heißt natürlich so, weil Anton in Yandex.Taxi arbeitet). Die Essenz der Tricks besteht darin, scheinbar bekannte Lösungen zu schreiben, um sie schöner und effektiver zu gestalten. Mit Pimpl können Sie beispielsweise die dynamische Zuordnung aufheben und den Cache schließen.
Lassen Sie uns unsere Liste mit jemandem verwässern, der nicht im Ausschuss arbeitet. Grüße Andrei Davydov von JetBrains - er arbeitet seit drei Jahren im ReSharper C ++ - Team und viele von uns nutzen die Ergebnisse seiner Arbeit jeden Tag. In dem Bericht wird Andrei darüber sprechen, wie sich das Erscheinungsbild von Modulen auf den Kern der C ++ - Sprache auswirkt: Wenn der Compiler früher nacheinander mit Übersetzungseinheiten arbeitete, änderten sich mit dem Aufkommen von Modulen die Spielregeln. Folgende Themen werden diskutiert:
- Was ist eine erreichbare Einheit und wie unterscheidet sie sich von der sichtbaren?
- Wie wirken sich Module auf ADL aus?
- ob Entitäten mit interner Verknüpfung in ein anderes Modul gelangen können;
- kann eine Klasse gleichzeitig als vollständig und als unvollständig importieren;
- Was passiert mit Inline-Funktionen in einer modularen Welt?
Beachten Sie, dass dies kein Einführungsbericht zu den Modulen für Anfänger ist. Von den Studenten wird erwartet, dass sie sich mit den Prinzipien der Module vertraut machen und verstehen, warum Module überhaupt benötigt werden. Die gute Nachricht ist, dass zum einen das Verstehen recht einfach ist (googeln Sie einfach einen guten Artikel), und zum anderen wird dieses C ++ - Russland ein weiteres paar einführendes Gespräch über Module von Dmitry Kozhevnikov führen (es funktioniert auch) bei JetBrains).
Der Rest des Programms
Es ist ziemlich offensichtlich, dass es unmöglich ist, über 30 Personen und ihre 30 Berichte in einer kurzen Nachankündigung über Habré zu berichten. All dies wird daher auf der offiziellen Website der Konferenz ausführlicher beschrieben. Es ist wichtig anzumerken, dass sich das Programm weiter ändert: Wenn beispielsweise Präsentatoren mit Hilfe des Programmausschusses ihre Berichte weiter verbessern, werden auch ihre Beschreibungen aktualisiert. Näher am 31. Oktober wird also alles etwas anders aussehen, aber die allgemeine Bedeutung bleibt gleich.
Berichte sind nicht alles!
Natürlich ist eine Konferenz nicht nur ein Bericht, sondern auch ein Meer der Kommunikation. Hier unterscheidet sich die Live-Präsenz von der Online-Übertragung, die wir ebenfalls planen. Schauen Sie sich die Liste oben an - mit den meisten dieser Leute möchte ich etwas Wichtiges treffen und diskutieren. Wir haben eine solche Gelegenheit: Nach dem Ende des Berichts gehen alle in den Diskussionsbereich und sprechen dort so lange wie möglich. Am Ende des Tages werden sogenannte BOF-Sitzungen organisiert (so etwas wie ein runder Tisch, aber nur jeder nimmt teil).
Sie können nur interessante Leute aus der Community treffen, die ebenfalls gekommen sind, aber ohne Bericht. Sie können Unternehmen von Interesse finden, etwas von ihren Vertretern lernen und an Wettbewerben teilnehmen. Es wird verschiedene Nebenaktivitäten geben, über die wir jetzt nachdenken. Kurz gesagt, alles, was man sich von einer großen Konferenz vorstellen kann.
Meisterkurse
Neben dem Hauptkonferenzprogramm gibt es auch Meisterkurse (die Teilnahme daran wird separat erstellt und bezahlt). Sie finden am Tag vor der Konferenz statt und dauern im Gegensatz zu Berichten jeweils mindestens mehrere Stunden. Detaillierte Beschreibungen und Teilnahmebedingungen für Meisterkurse finden Sie auf der offiziellen Website .
Anton Polukhin - "Flinkes und modernes C ++"
Anton ist ein bekannter russischer Entwickler, über den wir in diesem Artikel etwas weiter oben gesprochen haben. Seine Erfahrung als Autor von Boost-Bibliotheken, ein Teilnehmer und das Komitee für Standardisierung sowie seine umfangreiche Praxis ermöglichen es ihm, kompetenten intelligenten C ++ - Code zu schreiben und anderen beizubringen, dies zu tun.
In jeder großen Codebasis finden Sie Teile absolut unverständlichen Codes. In der Regel wird ein solcher Code so geschrieben, dass er ein wenig an Anwendungsleistung gewinnt ... und in der Regel wird ein solcher Code im Prinzip nicht benötigt, da er nicht das optimiert, was benötigt wird, nicht an dem Ort, an dem er benötigt wird, und nicht so, wie er sollte .
Die Meisterklasse beginnt mit einem kleinen Beispiel, in dem Sie alle gängigen Fehler der vorzeitigen Optimierung kennenlernen. Dann geht sie von den Grundlagen aus und betrachtet Dinge wie Algorithmen und Container der Standardbibliothek (und nicht nur der Standardbibliothek), die Bewegungssemantik und ihr unerwartetes Verhalten, Multithreading. Dies ist ein vollständig praktischer Workshop mit Google Benchmark und Aufgaben, die wie Aufgaben zur Optimierung bestimmten Codes aussehen.
Rainer Grimm - „Embedded Programming mit modernem C ++“
Rainer Grimm ist ein erfahrener C ++, Python-Programmiertrainer und Softwareentwickler aus Deutschland. Embedded ist einer der Hauptanwendungsbereiche von modernem C ++. Mit C ++ können Sie direkt mit Hardware kommunizieren und Abstraktionen zum Erstellen komplexer Systeme bereitstellen. In modernem C ++ gibt es viele Dinge, die beim Einbetten helfen. Dies sind Dinge wie Verschiebungssemantik und Constexpr-Funktionen (zur Verbesserung der Leistung), benutzerdefinierte Literale und Typmerkmale (für Systeme, für die maximale Sicherheit von entscheidender Bedeutung ist), intelligente Zeiger und std::array
(um weniger Probleme mit Ressourcen zu verursachen) )
In dieser Meisterklasse lernen Sie, wie Sie die Funktionen von C ++ in Bezug auf Embedded besser nutzen können. Insbesondere werden Antworten auf eine Vielzahl von Fragen zu den einzigartigen Einschränkungen solcher Systeme gegeben. Dieser Workshop wird auf Englisch unterrichtet.
Pavel Filonov - "Kontinuierliche Integration für C ++ - Entwickler"
Pavel Filonov glaubt, dass der Entwicklungsprozess nicht nach einem Commit enden sollte, deshalb wird er eine Meisterklasse über kontinuierliche Integration präsentieren. Der Zweck der Master-Klasse besteht darin, den nächsten Schritt in Richtung einer kontinuierlichen Integration (CI, Eng. Continuous Integration) zu machen und die Auflösung von Abhängigkeiten, die Montage und das Testen von Einheiten für alle Zielplattformen zu automatisieren. Auf diese Weise können die Teilnehmer die gesamte für CI erforderliche Infrastruktur vollständig unabhängig bereitstellen und ein C ++ - Projekt für die automatische Montage und den Komponententest vorbereiten.
Was weiter?
Und dann müssen Sie zu C ++ Russia 2019 Piter kommen! Die Konferenz findet vom 31. Oktober bis 1. November in St. Petersburg statt. Tickets können auf der offiziellen Website gekauft werden . Sie können sich auch detailliert mit der aktuellen Version des Programms vertraut machen (ich erinnere Sie daran, dass es sich weiterhin ändert).
Ein wichtiger Hinweis zu Preisen und Rabatten. Das Ticketingsystem kann Tickets in vier Arten ausstellen: Akademisch, Persönlich, Standard und Online. Warum es wichtig ist: Wenn Sie Tickets selbst kaufen, kostet es viel billiger als ein Ticket für das Unternehmen. Und wenn Sie Schüler, Doktorand oder Lehrer sind (und es ein entsprechendes Dokument zur Bestätigung gibt), ist der Rabatt besonders beeindruckend. Detaillierte Bedingungen müssen natürlich auf der Website gelesen werden - alles, was oben geschrieben wurde, diente nur zur Information.
In Erwartung von C ++ Russia 2019 Piter können Sie Aufnahmen von zwei früheren Konferenzen ansehen, die in diesem Frühjahr in Moskau und Nowosibirsk stattfanden. Im Allgemeinen sind alle Aufzeichnungen der letzten Jahre ordentlich auf unserem YouTube-Kanal . So können Sie die Qualität von Berichten visuell beurteilen.
Treffen Sie mich auf der C ++ Russia 2019 Piter!