Xin hat geschrieben:
Java gehört Oracle. Wenn die Java nicht pushen, dann wüsste ich nicht, wie man tot sonst noch definieren könnte. Und Android kann man inzwischen wohl auch mit C++ füttern.
Ich finde, dass Java auch im Open Source Bereich noch nen gewichtigen Projektanteil hat oder täuscht das? Android mit C++ sieht mir aber eher noch ziemlich kompliziert aus
Xin hat geschrieben:
Type-Casting gibt es bei allen Sprachen
Mir kam es persönlich so vor, als wären die Type-Casting Regeln in C aber wesentlich lockerer gefasst, als zum Beispiel in C#. Na gut gleichzeitig muss man in C# übers Boxing und Unboxing Bescheid wissen. Ok.
Xin hat geschrieben:
Java arbeitet ausschließlich mit Zeigern, in C++ stehen Dir zusätzlich RAII und Referenzen zur Verfügung.
Schön und gut und genau das macht C++ am Anfang in meinen Augen komplizierter, auch wenn ich es rückblickend besser finde als einfach nur "new" zu schreiben. Mir ist schon klar, dass Java und auch C# intern mit Zeigern arbeiten, aber sie abstrahieren das weg und sehen für Neulinge dadurch einfacher aus und fühlen sich auch einfacher an. Das Thema war ja ursprünglich, ob man noch C++ lernen sollte und ich wollte einfach mal ansprechen, wo die Schwierigkeiten für C++-Neulinge liegen können. Durfte ich ja die letzten 3 Jahre beobachten
Xin hat geschrieben:
Die Frage ist natürlich, warum man programmieren lernen möchte. Meint man das Ernst oder will man eher spielen?
Ist jetzt meine persönliche Meinung: Mir kommt es so vor, dass die meisten erst mal spielen (oder Spiele programmieren) wollen oder sich vorstellen in den Kreis der coolsten Hacker aufzusteigen, wie sie es letztens in nem Hollywood-Film gesehen haben.
Schaut man sich dann Tutorials oder Bücher zu C++ an, wird einem die Illusion vom schnellen eigenen Spiel aber auch sehr schnell wieder genommen. Da zeigt sich dann, ob die Leute mit ernst bei der Sache sind.
Xin hat geschrieben:
Kopie, Referenz oder Zeiger kann in C# nicht erklärt werden, denn C# kennt diese Unterscheidungen nur im 'unsafe'-Modus. Und dann programmiert man eher C++-Syntax als C#.
C# selbst kennt nur - und jetzt kommt's - die berüchtigten Zeiger. Nur sagt man es dem Programmierer nicht.
Hier muss man dann eben wieder diskutieren, ob es besser wäre, dem Programmierer zu sagen, dass es Zeiger sind. Als Anfänger hätte es mich verwirrt. Heutzutage würde ich sagen: Ja klar, sollte man wissen. Das meinte ich auch mit intuitiver. Wenn man erst mal nur ein "new" liest, ist man weniger abgeschreckt, als wenn man sofort mit Zeigern hantieren muss, wobei es wiederum besser ist gleich die Zeiger zu verstehen, da man dann mit "new" auch nie so große Probleme haben wird. Ist ne widersprüchliche Geschichte. Würde ich ein C# Tutorial schreiben, würde ich die Interna hinter new jedoch eher im Fortgeschrittenen-Teil abhandeln.
Xin hat geschrieben:
OOP ist ein Design Pattern - das kann man nutzen - muss man aber nicht.
Trotzdem verkompliziert es die Sprache, im Vergleich zu C, da man auch kaum ne C++-Anleitung findet, wo OOP ignoriert wird. Die meisten propagieren das ja sogar eher. Und als Einsteiger prozedurale Programmierung und OOP gleichzeitig zu verstehen... Ist schon nicht so leicht. Da braucht man gleich nen etwas längeren Atem. Aber na gut, den braucht man wohl sowieso, wenn man ernsthaft programmieren lernen will
Xin hat geschrieben:
Für GUIs braucht man heutzutage eher ein Programm, mit dem man Buttons hin und her verschiebt. GUIs werden auch gerne per HTML (oder QML) programmiert. Mit Datenstrukturen oder gar Algorithmen hat das heute weniger zu tun.
Ich dachte auch eher daran, was man so wissen muss, wenn man selbst eine GUI-Bibliothek erstellen wollte. Aber ok, wer macht sowas heutzutage noch selbst. Ich mag übrigens das Button hin - und herverschieben per Designer nicht. Da kommt fast immer Murks bei raus. Sachen wie QML oder XAML finde hingegen ganz gut, wenn man sie selbst schreibt und nicht "hinklickt".
cloidnerux hat geschrieben:
GUIs sind wichtig, keine Frage, aber eben für den Nutzer und nicht den Programmierer.
Das war ja mein Punkt. Die meisten Entwickler programmieren ja für den Nutzer und nicht nur für sich selbst oder für andere Programmierer.
cloidnerux hat geschrieben:
Nur was buntes zu sehen reicht ja nicht, es soll ja was können und das intuitiv und schnell. Und so kommt es, dass du 2 - 3h Zeit opferst, eine dämliche ListView so zu optimieren, dass man damit arbeiten kann, ohne den Verstand zu verlieren. Mehrfach das Programm umstrukturieren, damit die Verbindung der GUI sinnvoller funktioniert, grundlegende Funktionalität aus der GUI in die Datenhaltung auslagern(Daten speichern, lesen, auswerten). Das hält alles auf.
Es macht aber auch das Programm insgesamt wartbarer. Und wenn man eh keine Chance hat, die GUI zu vermeiden? Natürlich könnte man argumentieren, dass man schneller fertig ist, wenn niemand eine GUI verlangen würde. Das stimmt.
cloidnerux hat geschrieben:
Und das ist auch ein Grund, warum GUIs keine großen Erfolgserlebnisse darstellen. Man klickt was zusammen, das sieht dann schön aus. Dann klickt man auf etwas, und es passiert nichts. Dann sitzt man da und muss programmieren und stellt fest, dass man nicht drum herum kommt, Daten zu verwalten, Algorithmen zu implementieren usw. Man merkt sehr schnell, dass GUIs einen weder beim lernen noch Implementieren weiter bringen.
Vor allem die Tatsache, dass eine wirklich gute GUI sehr viel Arbeit ist, ist den meisten verschlossen. Den es ist nicht das aussehen, sondern die Bedienung, die bei sowas entscheidet.
Absolute Zustimmung
cloidnerux hat geschrieben:
Daher ist es niemals sinnvoll, einem Programmieranfänger erst eine GUI zu zeigen und dann das Programmieren, weil er wird verzweifeln, weil weder die GUI, noch sein Programm in irgendeiner weise sinnvoll funktionieren.
Das habe ich auch nie gesagt. Ich sage das Gegenteil: Niemand sollte mit komplexer GUI-Programmierung anfangen, schon gar nicht in C++. Ich störte mich einfach nur an dem "GUIs sind unwichtig" Satz

.