daemon777 schrieb:
Was mir bisher am Meisten auf den Keks gegangen ist ist die Tatsache, dasss man in C++ programmieren möchte aber dabei uralt Bibliotheken benutzt, die dann leider aber in C sind. Elegant bekommt man das dann eigentlich nur in C++ eingebettet, wenn man eine Art Wrapper für die benötigten Funktionalitäten schreibt. Das kostet aber natürlich etwas Zeit und Nerven.
Ja das stimmt, das ist auch etwas umständlich meistens - wer sich aber die Mühe nicht machen will, sich eine eigene Klasse zusammen zu basteln, die das für einen übernimmt (man muss die Klasse ja nur ein mal machen), dann kann man auch vorgefertigte Bibliotheken benutzen - erleichter einem so manches.
daemon777 schrieb:
Mittlerweile zwar eigentlich Vergangenheit aber die ursprünglichen APIs für Oberflächen unter Windows finde ich grauenvoll. Die Win32-API kann ich schonmal gar nicht leiden und was danach kam war auch nciht viel besser.
Die Windows-API kam für mich persönlich noch nie in Frage,.. Hab mich einmal darüber informiert und es sofort gehasst ^^
daemon777 schrieb:
Die beiden Punkte führen aber zu ein und dem selben Punkt: es gibt einfach furchtbar viele Altlasten. Ist ja schön und gut, dass alles kompatibel sein soll, aber angenehmer wäre tatsächlich mal ein harter Schnitt. Dass das aber in ganz vielen Fällen einfach nicht geht, sollte eigentlich jedem klar sein.
Das dachte ich mir auch schon öfters, ist aber leider nicht möglich.
Wenn dann sollte C++ einfach alle Altlasten direkt ersetzen durch neue Klassen, oder es sollte eine vergleichbare Programmiersprache geben wo es keine Altlasten mehr gibt. (Vergleichbar mit Binary-Größe, Geschwindigkeit, Syntax, usw)
daemon777 schrieb:
Eher am Rand von Bedeutung, aber ebenfalls nicht so ganz optimal finde ich die Auftrennung in Header und CPP-Dateien. Das finde ich zB in Java wesentlich schöner gelöst. Objektorientiert programmieren bedeutet meiner Meinung nach, dass es eine Datei pro Klasse gibt und ich nach außen Interfaces sichtbar machen kann. Für mich jedenfalls die elegantere Lösung
Ich denke mal in Java wird das genauso gehandhabt sein mit Klassen wie in C#, korrigiert mich bitte wenn ich falsch liege.
Einerseits wäre es einfacher eine Klasse zu erstellen - nur noch eine Datei zu pflegen, statt zwei.
Aber es hat mir bisher auch immer wieder geholfen, falls ich die IO-Optionen einer Klasse brauchte, nur die Header-Dateien anzuschauen. Genauso ist es, wenn man eine Bibliothek programmiert und diese irgendwo einbetten will, ohne dass der andere den Source-Code hat - man compiliert die Bibliothek (in Objekt- oder Binary-Dateien) und nimmt einfach noch die Header-Dateien dazu. Fertig.
In anderen Sprachen müsste man sich ja noch etwas mehr Mühe machen - man muss den Kopf jeder einzelnen Funktion in eine extra Datei schreiben - mach das mal bei ca. 20-30 Klassen.
