Nachlese: Going Native 2013
Leider bin ich erst diese Woche dazugekommen, mir die Vorträge der Konferenz Going Native 2013 anzuschauen. Die Konferenz wurde von Microsoft ausgetragen und fand vom 4. bis 6. September in Redmond statt. Wie bereits im letzten Jahr konnte man die Vorträge online und in bester Qualität mitverfolgen. Kurz nach dem Wochenende wurden zu allen Vorträgen die aufgenommenen Videos und gezeigten Foliensätze auf der Webseite von Channel 9 zur Verfügung gestellt.
Im Gegensatz zum letzten Jahr ging des dieses Mal ausschließlich um C++ – sowohl um plattformübergreifende als auch Windows-spezifische Themen. Ich habe mich primär auf Erstere fokussiert, und möchte im Folgenden auf drei Vorträge eingehen, die man sich aus meiner Sicht nicht entgehen lassen sollte.
An Effective C++11/14 Sampler (Scott Meyers)
Inhaltlich präsentiert Scott Meyers innerhalb von 75 Minuten drei Richtlinien, die er voraussichtlich in sein kommendes Buch zu C++11/14 aufnehmen wird. Konkret geht es dabei um das Verständnis für std::move
und std::forward
, über die Deklaration von Funktionen mit noexcept
sowie über die Verwendung von join
und detach
bei std::thread
s. Die Themen sind unstrittig, verständlich aufbereitet und gut recherchiert.
Der Vortrag lohnt sich unabhängig davon, ob man sich für die konkreten Themen interessiert oder nicht. Scott Meyers versteht es ausgezeichnet – und bei dieser Konferenz besser als jeder andere – seine Themen zu präsentieren und die Teilnehmer zu unterhalten. Das Publikum behält er bestens im Griff und mit Fragen geht er vorbildlich um. Im Gegensatz zu anderen geht er auch auf Schwächen und Inkonsistenzen von C++ ein – scharfzüngig aber nicht ausfallend. Prädikat empfehlenswert.
The Care and Feeding of C++’s Dragons (Chandler Carruth)
Chandler Carruth arbeitet bei Google und ist maßgeblich an der Clang-Entwicklung beteiligt. In seinem 90‑minütigen Vortrag geht auf einige Tools ein, die rund um Clang entstehen und die Entwicklung mit C++ vereinfachen sollen.
Den Vortrag hebe ich aus zwei Gründen hervor: Erstens zeigt er, was sich bei den Entwicklertools für C++ tut – abseits von Visual Studio. Dazu gehören neben Werkzeugen für die Code-Transformation auch Tools zur statischen und dynamischen Analyse nicht-funktionaler Eigenschaften. Zweitens gewährt er einen kleinen Blick in die C++-Entwicklung bei Google, und deutet an, welche Maßnahmen sie ergreifen, um die Produktivität von Entwicklern zu steigern. Aus meiner Sicht wird dieses Thema stark an Bedeutung gewinnen, denn die immer höheren Erwartungen der Kunden an Applikationen werden in Zukunft nur durch eine effizientere und effektivere Vorgehensweise in der Realisierung zu erfüllen sein.
Der Vortrag ist klar strukturiert, inhaltlich gut ausgearbeitet, optisch mit vielen Bildern aufgepeppt und kurzweilig und unterhaltsam präsentiert. Dennoch sehe ich einen wichtigen Unterschied zu Scott Meyers Vortrag: Meyers schafft es wesentlich besser, seine Aussagen auch zu vermitteln.
C++ Seasoning (Sean Parent)
Sean Parent arbeitet seit rund 20 Jahren bei Adobe mit einem kurzen Intermezzo bei Google. Bezeichnend finde ich seine Aussage, C++-Entwickler sollten den Sprachstandard mindestens zweimal vollständig gelesen habe. Bei einer allgemeinen Fragerunde wollte selbst Stephan T. Lavavej dieser Aussage nicht zustimmen.
In seinem 75‑minütigen Vortrag behandelt er die folgenden drei Richtlinien. Sie werden in der Präsentation sehr dogmatisch behandelt, und führten zu zahlreichen Fragen während des Vortrags. Ich schreibe die dogmatische Darstellung allerdings der Rhethorik zu, und glaube nicht, dass er es tatsächlich so verstanden haben will.
- No Raw Loops
- No Raw Synchronization Primitives
- No Raw Pointers
Interessant finde ich an diesem Vortrag insbesondere den ersten Teil. Parent beschreibt, wie sich Schleifen durch Algorithmen ersetzen lassen. Dadurch wird der Code sowohl kürzer, anpassbarer und effizienter. Seine Beispiele sind dafür gut gewählt.
Voraussetzung ist natürlich, dass man sich hinreichend gut mit den Algorithmen der Standard-Bibliothek auseinandergesetzt hat. Auf viele Entwickler trifft das nicht zu, und ich bezweifle auch, dass die Verwendung von Algorithmen in allen Fällen besser ist. Doch stimme ich ihm zu, dass Abstraktion und Komposition über Algorithmen ein großes und weit unterschätztes Potential bietet. Zumindest für mich ist sein Vortrag ein Grund, mich mal wieder intensiver mit diesem Thema zu beschäftigen.