"C++ hat trotz .NET viele Chancen"

20.03.2008
Von 


Wolfgang Miedl arbeitet Autor und Berater mit Schwerpunkt IT und Business. Daneben publiziert er auf der Website Sharepoint360.de regelmäßig rund um Microsoft SharePoint, Office und Social Collaboration.
Trotz Java- und .NET-Boom steht die klassische Programmiersprache C++ nach wie vor hoch im Kurs. Steve Teixeira, Group Program Manager bei Microsoft, berichtet im Gespräch mit der COMPUTERWOCHE über die aktuellen C++-Neuerungen und die Zukunft nativer Softwareentwicklung.

CW: Als Microsoft vor sieben Jahren das .NET-Framework vorstellte, stand die von Java her bekannte Virtualisierung hoch im Kurs. Damals hieß es - auch bei Microsoft -, dass bald schon jede Art von Softwareentwicklung in Managed-Code-Sprachen wie C# stattfinden wird. Dennoch hält Microsoft an der hardwarenahen, nativen Programmierung fest und bringt mit Visual Studio 2008 auch ein runderneuertes Visual C++. Hat Managed-Code die Erwartungen nicht erfüllt, oder wollen sich die Entwickler einfach nicht umstellen?

TEIXEIRA: Sie haben Recht, viele von uns glaubten, dass C++ an Bedeutung verlieren würde und an dessen Stelle zunehmend verwaltete, virtuelle Plattformen wie das .NET-Framework mit Sprachen wie C# oder VB.NET treten werden. Stattdessen haben wir in den vergangenen Jahren beobachtet, dass neben dem boomenden Managed-Sektor auch in der C++-Entwicklung Zuwächse zu verzeichnen waren. Nach wie vor werden viele große Softwareprojekte mit C++ realisiert, und ich denke, dass beide Bereiche ihre Berechtigung haben - es geht hier nicht um ein Entweder-oder.

CW: Als Alleinstellungsmerkmale der nativen Entwicklung gegenüber Managed-Code galten lange Zeit die höhere Effizienz und Performance. Doch angesichts immer leistungsfähigerer Hardware fällt dieses Argument mittlerweile immer weniger ins Gewicht. Welche Gründe sprechen denn heute noch für C++?

TEIXEIRA: Anhand umfangreicher Befragungen unter Softwareherstellern und Entwicklern haben wir drei Haupteinsatzzwecke für C++ identifiziert. So steht etwa bei vielen der Multiplattformansatz im Vordergrund. Man entwickelt mit einer Sprache und möchte ohne großen Aufwand unterschiedliche Zielplattformen wie Windows, Linux, Mac oder Embedded-Geräte erreichen. Visual C++ eignet sich dafür sehr gut, weil wir zu 98 Prozent konform sind mit dem ISO-Standard, so dass Portierungen auf andere Plattformen nur geringe Anpassungen erfordern.

Der zweite wichtige Aspekt für viele Unternehmen liegt in den enorm hohen Investitionen, die bereits für C++-Code ausgegeben wurden und die man nicht von heute auf morgen aufgeben kann. Nehmen Sie beispielsweise unsere Entwicklungsumgebung Visual Studio, die aus 45 Millionen Zeilen Code besteht und deren Umfang stetig weiterwächst.

Die dritte Domäne von C++ sind jene Bereiche, in denen Managed Code aufgrund seiner höheren Abstraktion weniger oder gar nicht geeignet ist. Typische Beispiele dafür sind Gerätetreiber, Antiviren-Tools oder andere systemnahe Software.

CW: Auf Betriebssystem- und Anwendungsseite hat Microsoft in den letzten Jahren einiges getan, um die Bedienfreundlichkeit und das Look-and-Feel zu verbessern, wie man an der Aero-Oberfläche von Vista oder dem Ribbon-UI von Office 2007 sieht. Kann C++ mit seinen alten Bibliotheken und Frameworks wie MFC hier überhaupt noch mithalten?

TEIXEIRA: Wir hatten auf diesem Gebiet tatsächlich einigen Nachholbedarf. Unsere Kunden haben die UI-Designmöglichkeiten von WPF oder Winforms unter .NET gesehen und wünschten sich dieses moderne Look-and-Feel auch für ihre C++-Applikationen. Aus diesem Grund haben wir nun den Visual Manager für MFC eingeführt. Immerhin arbeiten ja noch 60 bis 80 Prozent der Entwickler mit MFC, und denen bieten wir nun ein simples Tool, mit dem sie ihre Anwendungen ohne viel Aufwand auf den Vista- oder Office-Look trimmen können. Normalerweise reicht dazu eine Neukompilierung aus und unter Vista erscheinen Dialoge wie Datei-Öffnen im modernen Outfit. Sollen auch Werkzeug- und Menüleisten einer Applikation modernisiert werden, genügen hierzu ein paar Zeilen Code, die Programmlogik selbst muss dabei nicht angetastet werden.

CW: Das neue Ribbon-UI von Office 2007 wird von vielen als innovativ gelobt, andere wiederum kommen mit der Bedienung nicht zurecht. Welche Bedeutung hat dieses Design für Sie? Werden Sie es zukünftig als eine Art Standard-Bedienparadigma in Visual Studio integrieren?

TEIXEIRA: Man muss erst einmal sehen, ob Ribbon sich in jeder Art von Anwendung als bevorzugtes Bedienkonzept durchsetzen wird. Für Office ist es sicher eine sinnvolle Innovation. Diese Anwendungen sind nämlich mittlerweile derart komplex, dass sie über die klassischen Menüs kaum mehr zu beherrschen waren. Andererseits halten wir das alte Interaktionsmodell für Tools wie Visual Studio nach wie vor für optimal. Darum möchten wir den Entwicklern möglichst viel Gestaltungsspielraum einräumen - mit Tools wie der neuen MFC haben sie die entsprechenden Wahlmöglichkeiten.

CW: Heute arbeiten viele Entwickler auf Managed-Plattformen, und es existieren immer mehr Bibliotheken auf dieser Basis, so dass Interoperabilität von nativen und Managed-Komponenten immer wichtiger wird. Was hat sich auf diesem Gebiet verbessert?

TEIXEIRA: Die Unterstützung von hybriden Applikationen war für uns ein wichtiges Ziel. Ein typisches Problem bei solchen Mischanwendungen stellen bekanntlich die unterschiedlichen Datentypen dar, weil jede Programmiersprache die zu verarbeitenden Daten nach eigenen Konventionen liest und schreibt. Mit Hilfe neuer Marshalling-Bibliotheken können nun Klassen und Zeichenketten bei der Kommunikation von Komponenten verschiedener Provenienz korrekt umgewandelt werden.

Ein anderer wichtiger Punkt für uns war, dass wir die herstellerunabhängige C++-Standardbibliothek STL (Standard Template Library) nun in Managed-Code implementiert haben. Diese neue STL CLR (Common Language Runtime) erleichtert C++-Entwicklern den Zugriff auf .NET-Objekte. Grundsätzlich arbeiten wir an einer noch besseren Interoperabilität zwischen C++ und .NET-Sprachen wie C# und VB.NET. Ich bin aber der Ansicht, dass wir nicht mit ständig neuen Features in C++ eine Angleichung der Sprachen anstreben müssen. Jede Sprache sollte ihre eigenen Charakteristika behalten.

CW: Wie wird es denn weitergehen mit C++, haben Sie schon Pläne für die nächste Version von Visual Studio?

TEIXEIRA: Schon seit längerem arbeitet bei uns ein Team am künftigen Visual Studio 2010, und der Schwerpunkt liegt dabei ganz klar auf der Entwicklerproduktivität. Unter anderem entsteht ein neuer C++-Compiler, der in die Entwicklungsumgebung integriert wird, um Intellisense, Codenavigation und Codeerkennung besser zu unterstützen.

Hohe Priorität genießt zudem der Multiprozessor-Support. Mit der zunehmenden Verbreitung von Multicore-CPUs eröffnet sich ein ganz neues Potenzial für die parallele Codeverarbeitung. Heutige Software kann diese Potenziale meist gar nicht nutzen. Mit Open MP existiert zwar bereits ein Industriestandard, doch hapert es hier noch bei der Sprachintegration. Nehmen Sie beispielsweise eine typische "For"-Schleife: Wenn Sie als Entwickler eine solche Schleife parallel auf mehreren CPUs abarbeiten lassen wollen, dann wünschen Sie sich eine einfache Form der Anweisung, die bereits in die Sprache integriert ist. Wir arbeiten an einfach zu handhabenden Funktionen für die parallele Verarbeitung und werden diese in die Sprache und in die Bibliotheken integrieren.

CW: Sie klingen sehr optimistisch, was die Zukunft von C++ betrifft, und Ihr Unternehmen investiert offensichtlich auch einiges in diese Plattform. Erleben wir gerade so etwas wie ein Revival der nativen Softwareentwicklung?

TEIXEIRA: Zumindest erleben wir einen Bewusstseinswandel dahingehend, dass nativer Code trotz der Ausbreitung von Managed-Plattformen bis heute nicht an Bedeutung verloren hat. Viele arbeiten nach wie vor damit, aber es wurde in der Vergangenheit wenig darüber gesprochen. Windows wird aufgrund seiner Architektur weiterhin eine Plattform für native Anwendungen sein, und ich bin überzeugt davon, dass wir nativen Code noch lange Zeit gleichberechtigt neben verwaltetem Code sehen werden. (ue)

Das Interview führte Wolfgang Miedl, freier IT-Fachjournalist in Erding bei München.

[[Freigestellte Zitate]]

"C++-Entwickler können nun auch das Vista- und Office-Look-and-Feel umsetzen."

"Wir glaubten eine Zeit lang, dass .NET-Managed-Code die native C++-Entwicklung verdrängen würde."

"Jede Programmiersprache sollte ihre eigenen Charakteristika behalten."

"Nativer Code hat trotz der Ausbreitung von Managed-Plattformen bis heute nicht an Bedeutung verloren."