Tatsächlich gab es auch für den .NET-Entwickler (in diesem konkreten Falle ich ;-)) immer wieder Gelegenheit, C++ Code schreiben zu dürfen. Zugriff auf native Bibliotheken wenn P/Invoke nicht ausreichend war ist hier sicher ein typisches Beispiel. Der Trend zu Parallelverarbeitung ist ein weiteres Feld, in dem C++ seine Stärken ausspielen kann. Zum Beispiel bei Problemstellungen aus dem Bereich “Number crunching auf großen Datenmengen” (bei cache contention oder false sharing greift die dedizierte Kontrolle über das Speicherlayout besser als unter .NET). Ein Feld, das zunehmend Aufmerksamkeit erfährt, ist die Nutzung der Grafikarte (GPU).
Und neuere Signale deuten stark darauf hin, dass C++ aus dem Schattendasein, das es vielleicht in der Wahrnehmung mancher Entwickler geführt hat, wieder stärker ins Rampenlicht treten wird. Beispiele:
Herb Sutter, kein Unbekannter in der C++-Gemeinde, stellt für Microsoft die Unterstützung des neu verabschiedeten Standards C++11 deutlich heraus – was nicht heißt, dass sie nicht noch Arbeit zu tun hätten.
Sowohl Herb als auch andere sprechen seit einiger Zeit von einer “C++ Renaissance” – das gilt zumindest innerhalb von Microsoft.
In Windows 8, genauer der WinRT, wird C++ wieder auf Augenhöhe mit den anderen Plattformen geführt. Tatsächlich ist es sogar so, dass Teile der “.NET-Errungenschaften” in die native Welt zurückportiert wurden, etwa XAML oder das Metadatensystem, das dem COM-basierten WinRT beigestellt wurde. Zudem wird C++ – als einzige Sprache/Plattform – neben dem Metadaten-basierten Zugriff (language projection) auch den direkten Zugriff auf die COM-Schnittstelle erlauben.
Das C++ Core Team bei Microsoft war (nach Aussagen von Leuten aus der Produktgruppe) zeitweise auf ca. ein Dutzend Leute eingedampft. Mehr als Wartung war damit natürlich nicht möglich, was einen gewissen Nachholbedarf erklärt. Mittlerweile ist das Team wieder auf 200(!) Leute angewachsen. Unter anderem arbeiten sie daran, die Lücken aufzuholen, die sich genüber der .NET-Welt aufgetan haben, etwa im Bezug auf Unittest-Support.
Außerdem sind natürlich auch neue Themen auf der Agenda, etwa C++ AMP, auch hier. Ein durchaus interessantes Thema: In einer Beispielanwendung (Teilchensimulation) stieg die Performance von 2 GFLOPs auf einem Kern zu 30 GFLOPs auf 12 Kernen – und dann zu 200-1000 GFLOPs auf der GPU!
Was mich zum letzten Punkt und dem Anlass für diesen Beitrag bringt: Microsoft hält zur Zeit eine Vortragsreihe unter der Überschrift “Microsoft C++ Info Day 2012" ab. Laut Microsoft hat diese Reihe einen derart hohen Zuspruch, dass man über weitere Termine nachdenkt. In Bad Homburg hatten wir zudem das Glück, dass gerade zwei Leute aus der C++ Produktgruppe in Redmont anwesend waren (was bei den anderen Terminen vermutlich nicht der Fall ist).
Inhaltlich findet sich dort viel von dem, was hier verlinkt wurde, insbesondere wenn man Herb’s Vortrag kennt. Das Themenspektrum geht aber über diese Dinge hinaus und untermauert sie mit Demos, zum Beispiel beim Thema Multithreading oder Unittesting. Und was solche Veranstaltungen immer von Blogs oder Vortrags-Videos abheben wird: Die Diskussion und der Austausch untereinander. Als Untermauerung und Warnung: Man sollte die geplante Dauer (bis 18:00) nicht zu ernst nehmen.
Übrigens: Die nächste Advanced Developers Conference hat ebenfalls dem Thema C++ als Fokus.
In diesem Sinne:
auto betterDeveloper= make_shared<Developer>(“C#”, “C++”);
Sie sehen gerade einen Platzhalterinhalt von Facebook. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von Instagram. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr InformationenSie sehen gerade einen Platzhalterinhalt von X. Um auf den eigentlichen Inhalt zuzugreifen, klicken Sie auf die Schaltfläche unten. Bitte beachten Sie, dass dabei Daten an Drittanbieter weitergegeben werden.
Mehr Informationen