Aus Linux-Magazin 05/2016

C++ aus verschiedenen Perspektiven: Einsteigertauglich und professionell

Zwei C++-Bücher: eins für Anfänger, eins für Profis. Eins will es dem Leser besonders leicht machen, das andere macht es ihm schwer. Doch sich durchzukämpfen, zahlt sich beim letzteren aus.

Zuweilen entsteht bei der Lektüre der C++-Einführung von Mueller und Cogswell der Eindruck, die Autoren hätten ihren Untertitel “For Dummies” zu wörtlich genommen. Etwa wenn sie sich anschicken, Sinn und Funktion einer Scrollbar zu erklären: Wer mit der Mausbedienung Probleme hat, dem kann man mit einer Programmiereinführung sicher nicht helfen. Alle anderen wird eine solche Erklärung eher langweilen, wenn nicht beleidigen. Da helfen auch die bemühten Witzchen nicht: “Normalerweise ist Überladen eine üble Sache, so, als wenn wir in ein gutes Restaurant gehen und unseren Magen überladen.”

Für Anfänger

Das Buch führt zuerst in die elementaren Grundlagen der Programmierung ein: einfache Datentypen, einige, aber nicht alle Operatoren, Variablen, Ablaufsteuerung, Funktionen. Das alles erklärt es im Wesentlichen an prozeduralen Beispielen. Auch die Erläuterungen zu Pointern, Stack und Heap kommen noch ohne Objektorientierung aus.

Dabei wird aber schon ein Problem des Konzepts deutlich: Zwar werden etwa Zeiger und ihre Dereferenzierung verständlich, doch blenden die Autoren zunächst völlig aus, welchen Sinn und Zweck diese Operationen haben. Auch die Codebeispiele illustrieren nicht, welchen Mehrwert Zeiger haben. Später werden Einsatzmöglichkeiten nachgeliefert, die aber auf Stoff in folgenden Kapiteln vorgreifen. Hier zeigt sich, dass auch die For-Dummies-Methode dem Dilemma nicht entgeht, das entsteht, wenn eine komplexe Materie zu erklären ist.

Im Gegenteil: Das Bemühen um einen ausgeprägt saloppen Sprachstil führt etwa bei der Einführung der Objektorientierung in Kapitel 8 zu schon fast irreführenden Analogien. So mag man eine Klasse “Stifte” noch eingängig finden, aber ist “in zwei Teile zu zerbrechen” tatsächlich eine “Fähigkeit” dieser Klasse, die eine Mitgliedsfunktion repräsentieren soll? Und wo findet sich in diesem Beispiel der Gedanke, dass ein Ziel der objektorientierten Programmierung die Kombination der Daten mit den darauf ablaufenden Operationen ist?

Es verfestigt sich im Verlauf der Lektüre der Eindruck, dass die einfachste Erklärung nicht immer die nachhaltigste, geschweige denn beste sein muss. Auch zählt am Ende weniger, ob der Autor dem Leser ein Schmunzeln entlockte, sondern ob er Wissen vermitteln konnte, das sich praktisch nutzen lässt. Letzteres ist nicht die Stärke dieses Buches.

Für Profis

Peter Gottschlings englischsprachiges Werk “Discovering Modern C++” ist ein besonderes Buch. Zum einen, da es in der von Bjarne Stroustrups verantworteten Serie “C++ In-Depth” erschienen ist, zum anderen und vor allem, da es explizit Naturwissenschaftler anspricht. Der Untertitel lautet “An Intensive Course for Scientists, Engineers and Programmers”, und intensiv ist das Buch in der Tat, weil der Autor kompakt die Features des modernen C++ samt seinen Bibliotheken vorstellt. Dabei spart er nicht mit wertvollen Tipps, wie moderner C++-Code geschrieben werden sollte. Intensiv ist das Buch vor allem auch da, wo der Autor später direkt in anspruchsvolle C++-Techniken abtaucht.

Eingangs bietet Gottschling notwendige Grundlagen im Schnelldurchlauf. Konkret erklärt er die Basics von C++, geht aber auch auf Klassen, generische Programmierung und Bibliotheken ein. Darauf folgen zwei Kapitel, die es in sich haben. Das Kapitel “Meta-Programming” beginnt mit einer genauen Vorstellung von »constexpr« -Funktionen, dann stellt der Autor die Type-Traits-Bibliothek vor und erklärt die Besonderheiten von Expression Templates. In einer detaillierten Analyse zeigt er, wie sich Template-Programmierung verwenden lässt.

Im folgenden Kapitel zur Objektorientierung beschreibt Gottschling die Gefahren von Mehrfachvererbung, erklärt detailliert die verschiedenen C++-Casts und analysiert das CRTP-Idiom. Im letzten Kapitel “Scientific Projects” nimmt der Autor eine pragmatische Position ein und erläutert, wie große Projekte in C++ zu handhaben sind.

Peter Gottschlings Buch ist nicht leicht verdaulich. Wer sich ihm aber stellt, der wird C++ auf einem höherem Niveau programmieren. Für einen solchen Entwickler ist das Buch ein Muss.

Info 1

John Paul Mueller, Jeff Cogswell:

C++ All-in-One For Dummies

Wiley, 2015

865 Seiten, 22 Euro

ISBN: 978-1118823781

Info 2

Peter Gottschling:

Discovering Modern C++

Pearson Education, 2015

480 Seiten

50 Euro

ISBN: 978-0134383583

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 1 HeftseitePreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben