Gesamt |
|
Anspruch | |
Aufmachung | |
Bildqualität | |
Preis - Leistungs - Verhältnis | |
Die Programmiersprache C++ wird gleichermaßen geliebt und gehasst, denn ihre größte Fähigkeit, das hardwarenahe Arbeiten, ist eine gefährliche Angelegenheit, weil mit dem großen Repertoire auch viele Fehlerquellen entstehen. Da es für die Programmierung auf Systemebene mit dem Hintergrund einer vollen Ausnutzung der Hardwarekomponenten aber wohl unverzichtbar bleibt, wurde im August 2011 ein neuer Standard verabschiedet: C++11. Spät, denn eigentlich sollte es C++0x werden, aber letztendlich ist der Nachfolger von C++03 da.
Hier setzt Torsten T. Will an, bietet mit seinem Werk einen Überblick über die Neuerungen in den Bibliotheken und stellt einige ausgewählte neue Funktionen vor.
"C++11 programmieren - 60 Techniken für guten C++11-Code" ist ein überschaubares Kompendium des neuen Standards, der weit über tausend Seiten fasst und an dem satte zehn Jahre gearbeitet wurde. Will tritt mit dem Anspruch an, in seinen etwas über vierhundert Seiten die wichtigsten Neuerungen vorzustellen und sie so zu erklären, dass diese in neuen Projekten Anwendung finden können.
Dabei geht das Werk didaktisch immer nach demselben Muster vor. Zur Einleitung wird kurz der Hintergrund beleuchtet, bevor dann ein Beispiel den Code verdeutlicht. Anschließend wird die Materie vertieft durch das Aufgreifen von anderen (vorgestellten) Methoden, deren Kombination und schlussendlich einer kleinen "Mantra"-Zusammenfassung.
In 63 - mehr oder weniger nützlichen - Kapiteln werden die neuen Techniken vorgestellt, denen das Buch wohl auch seinen Untertitel verdankt, denn über den Stil von Programmierung ("guten C++11-Code") wird es immer Streit geben und im Prinzip gibt es dort auch keine allgemeingültige Lösung.
Sprachlich gekonnt leitet Will seine Kapitel jeweils zu den nächsten Themenblöcken und deckt damit einen großen Bereich von wirklich interessanten und mächtigen Funktionen ab. Je nach Vorliebe und Interesse des Einzelnen, kann Wills Begeisterung für die eine oder andere Funktion mehr oder weniger geteilt werden, zumal der Leser locker als Kollege geduzt wird. Klar ist jedoch, dass die aufgegriffenen Neuerungen elementar sind und durchaus ihr Vorzüge haben. Stark sind die Referenzen innerhalb der Texte sowie die Angabe von externen Quellen, die entgegen vieler anderer Werke auch vernünftig, zum Beispiel mit dem Abrufdatum, angegeben sind.
Vier große Themenbereiche beinhaltet das Buch: Zuerst eine Auffrischung von C++03 Konzepten, die für das spätere Verständnis parat gehalten werden sollten, bevor sich das zweite Kapitel mit den neuen Sprachmechanismen beschäftigt. Im dritten Teil gibt es dann Container und Pointer, bevor sich der vierte Bereich Neuerungen im Multithreading oder der Fehlerbehandlung widmet.
Wie bei jedem Werk zu einem neuen Standard haben sich kleinere Fehler und Unsauberkeiten eingeschlichen, die aber kaum zu vermeiden sind. Die Erwähnung von Funktionen bei der Vorstellung anderer Funktionen ist wie die ewige Frage mit Henne und Ei; wer mitdenkt, bekommt aber auch diese Vorgriffe aufgelöst. Problematisch ist die fehlende Kennzeichnung der Beispiele beziehungsweise eine deutliche Ansage, an welchem Punkt der alte und der neue Standard benutzt werden. In Kombination mit dem Vorweggreif-
Problem sind Irritationen an einigen Stellen unvermeidbar, da zuerst (für sich selbst) geklärt werden muss, ob das ein neues oder altes Feature ist.
Ob "Lambdas und Funktoren" nützlicher sind als "Verschiebesemantik" oder Syntaxerleichtungen, orientiert sich am Anwendungsgebiet des Programmierers; Will fasst diese hier zusammen, so dass das Buch auch als Nachschlagewerk auf dem Schreibtisch seine Daseinsberechtigung verdient hat. Ob sich diese Aspekte wirklich durchsetzen und in Zukunft die C++ Programmierung verbessern werden, sei bei einigen Optionen dahingestellt.
Kurzum: "C++11 programmieren" ist eine sinnvolle Kurzvorstellung der neuen Möglichkeiten und unterstützt bereits versierte C++03 Programmierer bei der Erforschung und Nutzung. Ausdrücklich sei darauf verwiesen, dies ist kein Einsteigerwerk! Es ist die pure Vertiefung in C++11 - und die ist größtenteils gelungen.
Auf der Verlagsseite von Galileo Computing kann das Inhaltsverzeichnis und eine Leseprobe eingesehen werden.