Dieser Text entstand am Lehrstuhl Wagner im Rahmen der Praktika,
die Studierende im Hauptstudium machen müssen. Sie lernen im
Grundstudium objektorientiertes Programmieren anhand der
Programmiersprache Java. Es hat sich allerdings gezeigt, dass
für Algorithmen und Datenstrukturen Java schlechter geeignet ist
als C++. Deshalb sind wir dazu übergegangen, im ersten Teil des
Praktikums C++ zu vermitteln. Dabei beschränken wir uns auf
einige Teilaspekte von C++, die wir für notwendig und sinnvoll
für diese Awendung erachten.
Insbesondere werden hardwarenahe Teile der Programmiersprache
auf eine Minimum reduziert.
Es soll aber nicht gesagt werden, dass Java eine schlechte
Programmiersprache wäre oder gar gänzlich unnütz.
Es ist vielmehr so, dass wir Dinge, die Java bereitstellt,
nicht aber dafür andere Dinge, die es nicht bereitstellt, sehr
wohl benötigen. Aus unserer Sicht der Dinge stellt sich das
Verhältnis von Java, C und C++ folgendermaßen dar: C++ kann
seine Herkunft von C schon allein durch den Namen sicherlich
nicht leugnen. Die meisten Teile von C sind in C++ enthalten.
Es bietet aber durch die Mittel zum objektorientierten und
generischen Programmieren weit mehr. In Java findet man
(derzeit) nur die Hilfsmittel zur Objektorientierung wieder.
Es setzt sich aber insbesondere bei der Speicherverwaltung
stark von C und C++ ab. Auf der anderen Seite gehört eine
wesentlich umfangreichere Bibliothek zu Java dazu, die z.B.
die Programmierung von GUIs oder Netzwerkfähigkeit ermöglicht.
Diese Dinge spielen jedoch bei Algorithmen und
Datenstrukturen, im Gegensatz zur Speicherverwaltung, eine
untergeordnete Rolle. Letztere ist dem Programmierer in Java
jedoch gänzlich aus den Händen genommen. Darüberhinaus gibt es
viele weitere Details, die es dem Programmierer ermöglichen,
effizienteren Code zu schreiben. Summa summarum erscheint uns
daher die Verwendung von C++ für unseren Zweck sinnvoll