http://www.heise.de/developer/artikel/I ... kelseite=2heise Developer: C++ gilt als eine der schwerer zu erlernenden Sprachen. Was könnte man Ihrer Meinung nach verbessern, um Anfängern den Einstieg zu erleichtern?
Stroustrup: Wenn man es mit anderen Sprachen vergleicht, ist C++ tatsächlich schwer gut zu erlernen. Es gibt viel mehr zu lernen, weil C++ so viel mehr ausdrücken kann und sich zu einem viel breiteren Spektrum von Anwendungen einsetzen lässt als die meisten anderen Sprachen. Trotzdem kann sie zu lernen sehr lohnend sein, weil sie letztlich eine unübertroffene Vielzahl von Kombinationsmöglichkeiten von Flexibilität und Leistungsfähigkeit ermöglicht. C++ legt grundlegende Mechanismen frei, die andere Sprachen eher verstecken – wodurch ihre Nutzer an "Magie" glauben.
Es geht hier aber nicht um Sprachdesign, sondern um das Lernen. C++11 und C++14 sind wesentlich einfacher beizubringen und zu lernen als C++98, und auch das ist viel einfacher zu erlernen, als der Ruf impliziert. Das Problem ist, dass viele Neulinge mit dem Kopf zuerst in die dunkelsten Abgründe der Sprache abtauchen und einfache Lösungen ignorieren. Gleichzeitig bestehen viele Lehrer darauf, ihre unschuldigen Studenten jedem obskuren Detail von C auszusetzen, bevor sie ihnen die C++-Möglichkeiten demonstrieren, die dafür sorgen, dass sie sich mit diesen Komplexitäten nicht auseinandersetzen müssen, bis sie sie wirklich brauchen (wenn das jemals der Fall sein sollte). C++-Elemente wie vector und string vereinfachen vielen Code, der mit Arrays, Zeigern, Makros und expliziter Speicherverwaltung umgesetzt wird.
Ist es wirklich so sinnvoll Schüler ganz am Anfang mit char-arrays und malloc()s zu quälen, wenn sie im praktischen leben viel eher std::string brauchen werden? Sicher sollte man mit "Arrays, Zeigern, Makros und expliziter Speicherverwaltung" umgehen können. Aber ich finde, das sollte eher zu einem späteren Zeitpunkt erfolgen, und nicht als "Grundlage" für String-Operationen gesehen werden.