R
Definiere bitte mal Low-Level.
ist eh kein definierter Begriff
für mich heisst Low-Level, ich kann laufzeiten des Codes abschaetzen.
Also nicht low-level heisst für mich, Ich kann nicht mehr garantieren, das mein Prozess, wenn er den Fokus bekommt, das tut was ich denke, sondern er kann andere Dinge tun (bsp. Java, er raeumt erst mal seine GC's auf ...).
Unterschied in der Programmierweisse:
bei low level: ich designe vom Code her, d.h. ich hab ne genaue vorstellung von der Laufzeit, wenn ich den Code noch schreibe.
bei nicht low level: Ich muss erst mal funktionen ausmessen, was die mich kosten, laufzeittechnisch. Und selbst das muss dann nicht gleichbleibend sein. Ergo, ich kann nur implementieren, und dann die gesamtheit der funktionalitaet auf laufzeitverhalten testen, und dann entscheiden ob es langt oder nicht.
Ist halt viel probieren dabei.
Für mich ist C++ keine Low-Level Sprache, sondern eine Hochsprache die Low-Level zulässt.
Für mich ist C++ auch eine Hochsprache, mit der man aber auch low level(systemnah) programmieren kann. Das, in Kombination mit einigen, zugegeben nicht immer perfekten, stylistischen Mittel zum schreiben von sauberen Code ist aber das "Feature" von C++ schlechthin.
Jedes größere Projekt sollte vor allem pflegbar sein.
RIchtig. Und c++ ist IMHO die einzige Programmiersprache, wo man durch performanceprobleme "nicht intuitiv lesbaren Code" so gut verpacken kann. BlackBox-Programmierung in Kombination mit Performanter-Programmierung. Ich verlange von keinem Programmierer, das ich all seinen code verstehen muss, wenn er es "ordentlich" verpackt, also ein sauberes Interface bietet und das gut dokumentiert ist, und auch seiteneffektfrei ist.
Sprich, der code selber ist nicht unbedingt wartbar, aber dafuer iss das komplette Ding (Klasse/Methode) ohne Probleme austauschbar.
Das ist IMHO das Killerfeature von C++. Alles andere ereiche ich mit anderen Programmiersprachen besser.
Für mich gehören beispielsweise Zeiger zwar nicht zwangsweise gemieden, aber sind dennoch an vielen Stellen unnötig
C++ Designerichtlinien: Zeiger nur wo man muss, ansonsten Referenzen.
Also man sollte schon einen nichtwiderlegbaren Grund fuer einen Zeiger haben.
In schlechten c++ Code sind aber meist nicht die Zeiger schlechthin das Problem, sondern das damit oft verbundene new !
und new ist einer der laufzeitperformancekiller schlechtin ! Wer das ohne triftigen Grund verwendet, zu dem darf man getrost "Java-Programmierer" sagen
Ciao ...