Ohne Witz, der Thread sollte nicht weitergeführt werden... Das endet sonst wo 😀
Wie üblich werden sich einige Zweige in Diskussionen darüber verlieren, welche Sprache oder welches Framework das beste ist, und zwei (oder mehr) "Seiten" werden ihre Argumente auflisten und ignorieren und ignoriert werden. Es gibt Pros und Cons, jeder mag sich selbst ein Bild machen.
C++ ist nichts magisches, was nur die Auserwählten können. Ich habe Erfahrung mit C++ und muss sagen: Es ist ähnlcih wie bei Java: Es kommt nur darauf an, die existierenden Frameworks und Engines zu beherrschen.
Definitiv richtig. Mein Einlass bezog sich auf damit verwandte Dinge: Java macht einen zweifellos vieles leichter als C++. Das fängt bei low-level-Sprachaspekten an (Speicherverwaltung) und geht über medium-level Dinge (Klassenstrukturen und Methodensignaturen, in C++ viiiieeel schwieriger "gut" zu machen als in Java), bis zu high-level-Dingen wie Frameworks und deren Verwendung. Letzteres auch wieder auf mehreren Ebenen: Vom Einbinden (in Java: Rechtsklick auf JAR->"Add to build path", in C++ ... beliebig kompliziert, was die Hemmschwelle, andere Libs einzubinden, dramatisch erhöht) bis zur API-Doku, die bei Java fast prinzipedingt vollständiger (weil einfacher zu generieren) ist, als ein nebenher erstelltes (und IMHO auch nicht so übersichtliches) Doxygen.
Sicher ist auch an C++ nicht "magisches". Ich wollte (vereinfacht gesagt) andeuteten, dass es viel, viel, viel einfacher ist, ein "guter Java-Programmierer" zu sein, als ein "guter C++-Programmierer". Ich weiß zumindest, dass es Leute gibt, die meinen, sie würden ("gut"???) C++ programmieren, und verwenden zum Zahlen/String-Konvertieren dann atoi & Co, schreiben sich ihre eigene String- oder Vector-Klasse weil "...da sind noch ein paar praktische Zusatzfunktionen dabei" :autsch:, lesen Files über "File"-Objekte, kennen die STL nur vom Hörensagen, und meinen allen ernstes: "Ach, ob die Methoden und Variablen nun private oder public sind ist doch egal..." (Auch wenn das teilweise nichts mit der Sprache zu tun hat). Der Aufwand für ein "gutes Programm" ist bei C++ um mehrere Größenordnungen (!) höher - einerseits auf "intellektuell-akademischer" Seite, bezogen auf die Fähigkeiten und den Wissensstand über die Sprachdetails und best practices, andererseits als auch in bezug auf den Code, den man am Ende hinschreiben muss.
Ich habe schon lange nichts mehr mit C++ gemacht, aber bei dem wenigen, was ich gemacht habe, seit ich mit Java arbeite, habe ich gemerkt, dass sich mein Programmierstil stark an Java anlehnt: Alles sind Pointer, alles erstmal komplett virtuelle Klassen, usw... Um die Sprache nicht nur für "low-level-Programmierung" sondern für Softwareentwicklung auf einem sinnvollen, übergeordnet-abstrahierenden Level nutzen zu können, kommt man um Dinge wie boost's shared_ptr IMHO eigentlich nicht drumrum, und konsequent weitergedacht ... (C++-Fans werden mich jetzt hauen
😉 ) ... bindet man erstmal 50 Libs ein, damit man mit 100mal komplizierterer Syntax so ähnlich programmieren kann wie mit Java von vornherein
😀