Open Source im professionellen Einsatz
Linux-Magazin 05/2016

C++ aus verschiedenen Perspektiven: Einsteigertauglich und professionell

Tux liest

,

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.

667

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 PDF

Umfang: 1 Heftseiten

Preis € 0,99
(inkl. 19% MwSt.)

Linux-Magazin kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Bücher

    Java eignet sich recht gut für Programmieranfänger, sind die Grundzüge doch verhältnismäßig leicht zu lernen. Dabei hilft das erste hier vorgestellte Buch Lesern ohne Vorkenntnisse. Das zweite bietet eine Rezeptsammlung für Git, die gestandene Programmierer nutzen können.

  • Bücher

    Zwei empfehlenswerte Lehrbücher vermitteln die Grundlagen der Betriebssysteme beziehungsweise der C- und C++-Programmierung.

  • Bücher

    Passend zum Titelthema stellt die Bücherseite einen Band zur Android-Forensik vor. Das zweite Buch ist Scott Meyers' "Effektiv C++ programmieren" in seiner jüngsten deutschen Auflage.

  • Bücher

    Zwei Bücher fanden in diesem Monat das Interesse der Magazin-Rezensenten: eins über die gediegene Sprache Scala, eines über das hippe Thema Suchmaschinen-Optimierung.

  • Bücher

    In den Taschen der Mitmenschen stecken allerhand mobile Geräte und Betriebssysteme. Das erste vorgestellte Buch möchte mit HTML 5 Apps schreiben, die überall dort laufen. Der zweite Titel bringt mit Python und den passenden Bibliotheken dem Computer das Sehen bei.

comments powered by Disqus

Ausgabe 07/2017

Digitale Ausgabe: Preis € 6,40
(inkl. 19% MwSt.)

Artikelserien und interessante Workshops aus dem Magazin können Sie hier als Bundle erwerben.