Meine Gedanken, als ich diesen Artikel gelesen habe, Eine Meinung

Meine Gedanken, als ich diesen Artikel gelesen habe

Als ich am Freitag die neuste c't in den Händen hielt und den Artikel über Crossplattform- Entwicklungssysteme gelesen habe, war ich überrascht. Ich werde jetzt keine allgemeine Kritik an Zeitschriften folgen lassen. Aber wenn man bedenkt, dass die c't auch von Entscheidungsträgern gelesen wird, denen es leider oft an technologischen Spezialwissen fehlt, die unterschwellige Werbung oder auch das Bashing zu erkennen, ist das schon bedenklich. Und gerade Artikel der c't haben in der Vergangenheit schon als Basis gedient, einen Wechsel von C und C++ hin zu Java oder anderen Sprachen zu untermauern. So kann ich mir auch dieses Mal vorstellen, dass einige Nutzer des C++Builders und von Delphi Probleme bekommen und sich in ihrem Unternehmen rechtfertigen müssen. Denn schließlich steht es ja schwarz auf weiss in der Zeitung, und irgendwie glauben wir immer noch, dass es wahr ist, wenn es gedruckt ist. Und gerade die Mischung von sinnvollen Fakten mit kleinen Seitenhieben erscheint hier immer wieder erfolgreich. So möchte ich auch nur auf einige Punkte eingehen.

 

Der Wandel der IT

In den letzten 10 Jahren ist es zu einem Wandel in der IT gekommen, Programme und Daten bestimmen immer mehr unser tägliches Leben. Und mit der neuen EU- Datenschutzgrundverordnung ist einigen vielleicht auch deutlich geworden, wieviele Daten mittlerweile gespeichert werden. Dazu kommen aber andere Probleme, denn unsere Rechenzentren werden immer größer, und nachwievor spielt hier C++ eine wichtige Rolle. Somit musste sich auch die Sprache in den letzten Jahren anpassen und erweitern. Aber beginnen wir von vorne und stellen uns diese Frage.

Warum muss sich C++ neu erfinden und anpassen? 

In den letzten Monaten und Jahren hat es sehr viele Neuigkeiten und Veränderungen in der IT gegeben. Durch die SmartPhones, Tablets und SmartTVs, neue Betriebssysteme und Technologien, wie die Bedienung von Rechnern über Touch oder sogar freie Gesten, ist mehr passiert, wie in den 50 Jahren zuvor. Der IT- Markt ist wieder in Bewegung, neue Firmen tauchen auf, andere versuchen sich zu behaupten. Außerdem spielen die sozialen Netzwerke und das Internet heute eine noch wichtigere Rolle. Dazu kommen Cloud- Dienste und andere Serverleistungen.

Aber unsere Gesellschaft wird damit auch immer abhängiger von einer funktionierenden IT- Infrastruktur. Autos, Bahnen und Flugzeuge werden mit elektronischen Hilfsprogrammen aufgerüstet. Die Eisenbahnen fahren in immer kürzeren Abständen, Fabriken werden durch Computer gesteuert und die Logistik reduziert bisher notwendige Lagerbestände durch zeitgenaue Transporte rund um die Welt.  Im Jahr 2012 konnten wir im Fernsehen die erfolgreiche Landung des Marsrover „Curiosity“ mitverfolgen, und nun sehen wir, wie dieser seine Fahrt auf dem Mars besteht. So hat dieser sogar einen eigenen Twitter- Account.  Und sehr oft sind diese Systeme mit C oder C++ programmiert.

Und dank der „Cloud“, sozialen Netzwerken wie Facebook und Googles Internetdiensten haben sich riesige Rechenzentren gebildet. Diese funktionieren aber nur, wen sie konstant mit Strom versorgt werden, damit die Rechner laufen und ausreichend gekühlt werden können.  Die Stromkosten sind gewaltig, nur fehlt das Bewusstsein in der Bevölkerung für diese Probleme keine Rolle. Einige kennen den Spruch, dass man mit dem Stromverbrauch einer Google- Suchabfrage auch eine Tasse Kaffee kochen könnte. Daher spielen Rechenzentren bei der Strom- und CO2- Bilanz heute eine spürbare Bedeutung, hier in Deutschland werden mehr als 10% des erzeugten Stroms in Serverfarmen verbraucht. Und auch hier zeigt sich, dass effizienter, nativer Code, zum Beispiel in C oder C++ geschrieben, nicht nur Kosten sparen, sondern auch unser Umwelt hilft.

Aber durch die zunehmende Bedeutung der Rechenzentren haben heute Störungen in diesen globale Auswirkung. Wir brauchen also Anwendungen, die nicht nur effizient arbeiten, sondern auch sicher sind. Und die IT- Experten werden zu wichtigen Faktoren in den Strategien der Militärs, die in Angriffen auf diese Infrastrukturen eine große Gefahr sehen, und ihrerseits die des Gegner stören wollen. Als ich dieses vor 5 Jahren das erste Mal geschrieben habe, gab es noch keinen Hacker- Angriff auf unseren Bundestag, und auch die aktive Beeinflussung des USA Wahlkampfs durch staatliche geförderte Hacker lag noch in der weiten Zukunft.

Den meisten bekannten Systemen ist eines gemeinsam, sie sind zumindest teilweise in der Programmiersprache C++, oder in der Untermenge C  geschrieben. So sprach Herb Sutter in einem Vortrag davon, dass Microsoft seine eigene Sprache C# liebt, aber letztlich auf C++ gebaut ist. Viele der wichtigen Microsoft Produkte, wie zum Beispiel die Windows- Betriebssysteme, Office, der Internet Explorer, Exchange, MS SQL, aber auch der C#- Compiler selber, sind in C++ geschrieben. Aber auch andere bekannte Systeme wie Unix oder Linux sind sehr eng mit C und C++ verknüpft. Und damit dürfte es kaum ein elektronisches Gerät geben, auf dem nicht ein Aufkleber "C++ inside" stehen könnte, wie es Bjarne Stroustrup vor einiger Zeit mal gesagt hat.

Und auch soziale Netzwerke, wie Facebook, oder Googles Suchdienst mit den riesigen Serverfarmen wären C++ sicher nicht denkbar. So wundert es nicht, dass diese Firmen in der Weiterentwicklung von C++ immer wieder auftauchen.

Diese Programmiersprache, die von Kritikern sehr oft als veraltet oder sogar konzeptionslos bezeichnet wird, scheint so wieder eine größere Rolle zu spielen. Für uns ist es wichtig, das aktive Marketing, dass leider sehr oft im Bashing von C++ endet, von wirklicher und sachlicher Information zu trennen. So wird von einer Auferstehung seit 2011 gesprochen. Tatsächlich war die Programmiersprache C++ nie weg,  sie war auch nicht im Verborgenen zu einem Schattendasein verdammt, sondern viele wichtige Systeme wurden und werden auch weiterhin in dieser nativen, leistungsfähigen Sprache geschrieben. Keine andere Sprache bietet die Bandbreite an Möglichkeiten für Architekten und Entwickler, wird durch so viele Werkzeuge unterstützt, und die erstellten Programme sind schneller und ressourcenschonender, als die der gehypten Modesprachen. Gerade der schonende Umgang mit den Ressourcen  macht die Sprache so interessant, sei es in Geräten mit geringen Platz, in SmartPhones und Tablets, da hier die Akkus entscheidend für die mögliche Leistung sind, aber auch zunehmend in Serverfarmen, um nennenswert Energie zu sparen und so weniger CO2 zu erzeugen.

Und die Sprache C++ ist auch nicht konzeptionslos. Was stimmt, C++ ist nicht objektorientiert. Sie war nie als solche geplant. Da C eine Untermenge ist, kann man sogar noch vollständig strukturierte Programme schreiben. Und das ist auch gut so. Von Anfang an war die Sprache immer eine multiparadigmen Sprache, unterstützt also neben vielen Elementen der Objektorientierung auch welche aus der Metaprogrammierung und zunehmend auch der funktionalen Entwicklung. Somit ist C++ frei von Dogmen. Dazu kommt die Mehrfachvererbung,  und die Möglichkeit eigene Datentypen mit allen Operatoren zu entwerfen, die man in dieser Form in anderen Sprachen meist nicht findet.  Dass die Festlegung auf ein Paradigma Nachteile bringt, haben auch Vertreter der „reinen“ Sprachen in den letzten Jahren erkannt. Hier sucht man jetzt nach passenden Ergänzungen, teilweise in dem die eigene Sprache erweitert wird, wie in Java durch Generics und Lambda- Funktionen. Alternativ wird nach einer Kombination mehrere Sprachen gesucht, hier spricht man von polyglotten Programmieren.

Und die Sprache C++ ist auch nicht veraltet. So wurde nach einigen Jahren Abstimmung im ISO- Komitee im September 2011 der neue C++ Standard C++11 verabschiedet. Damit wurde das Ziel, dieses innerhalb der ersten Dekade dieses Jahrhunderts, also bis 2009 abzuschließen, nicht erreicht. Aber das Ergebnis zählt, und so ist es auch ein Zeichen der Qualität der Entwicklung von C++, einmal einen Meilenstein nicht zu erreichen. Wie Bjarne Stroustrup es schrieb, das neue C++ fühlt sich an, wie eine neue Sprache. Dabei wurde auch gleich der Fahrplan für die folgenden Jahre festgelegt. So folgten die Standards C++14 und C++17, und es wird aktiv am nächsten Schritt gearbeitet. Diese neuen Standards brachten sehr viele interessante Eigenschaften, die die Sprache für die Anforderungen der nächsten Jahre rüstet. Aber die Entwickler müssen diese auch annehmen und gegebenenfalls noch einmal auf die Schulbank gehen. 

Kommentar verfassen

* These fields are required

Kommentare

Keine Kommentare

Über den Autor


Über den Autor

Volker Hillmann

CEO, Developer, Germany, Berlin
Volker Hillmann geboren 1965, ist studierter Diplom-Mathematiker mit dem Schwerpunkt Datenbanken und Datensicherheit. Er programmiert seit 1988 in C. Nach ersten Berührungen auf einer Unix- Maschine mit Turbo C 1.5 auf PCs. So lernte er 1991 auch C++ kennen und programmiert seit dem in unterschiedlichen Bereichen mit C++. Nach einigen Erfahrungen im Versicherungs- und Bankenwesen gründete er im Jahr 2000 die adecc Systemhaus GmbH, dessen geschäftsführender Gesellschaft er bis heute ist. Darüber ist er MVP bei embarcadero Deutschland.

More posts by this author