MARTIN hat geschrieben:Leute die gleich mit in C++ anfangen werden genau so
unsicher programmieren, wenn ihnen keiner sagt das man
sich auch um Fehlerbehandlung kümmern muss.
Da Exception Handling zum Standard gehört, wird einem
das in jedem ordentlichem Lehrbuch gesagt und gelernt.
MARTIN hat geschrieben:Es ist eben besser wenn man zunächst den "niederen Dreck".
Es ist also besser wenn ein Anfänger ganz unten anfängt
und sich dann steigert?
Erst Maschinensprache für irgendeine Architektur. Alles wieder
vergessen und dann steigern auf C. Alles wieder vergessen
und dann C++/C#/Java. Oder wie?
MARTIN hat geschrieben:Dieses von Oben nach unten lernen ist gut fürs Hobby, aber
nicht wenn man Profi oder Experte werden will.
Bevor man lernt ein modernes Auto zu fahren, muß man
doch auch nicht erst 2 Jahre mit der Pferdekutsche fahren,
nur weil es das früher gab.
MARTIN hat geschrieben:daran das es in C keine Strings gibt
Und das ist auch gut so. Da durch lernt man das Strings
nicht leicht zu handhaben sind. Es ist ein häufiges Problem.
Ich konnte es gut im Studium beobachten, Leute die vorher
in Java oder Pascal programmiert habe wüssten nicht mit
welchem Rechenaufwand handhaben von Strings verbunden
ist(im vergleich zu einfachen Daten-Typen) .
Dann empfehle halt den PB-Neueinsteigern auch erstmal
C oder ASM zu machen, bevor sie eine Sprache nehmen die
sogar Strings bietet.
Das hab ich bei (Pure-)Basic, Java und C# noch nie gehört
das da einer meinte man soll erstmal C lernen bevor man
sich an diese Sachen wagt, weil die schon Strings haben.
Nur bei C++ hat es sich eingebürgert zu empfehlen erstmal
C zu nehmen.
Im übrigen lernt man auch mit modernen Sprachen was Arrays,
Datenstrukturen usw. sind, genauso wie Algorithmen etc.
Um diese Programmiergrundlagen zu erlernen muß man nicht
auf moderne Sprachen verzichten.
Sollte ein PB-Einsteiger auch erstmal DirectX, SDL und OpenGL
lernen, so daß er sieht wie schwierig das ist, bevor er dann
OpenScreen() und Sprites verwenden darf?
Auf diese Idee würde niemand kommen. Interessiert viele
Leute garnicht wie das intern funktioniert, die wollen es
einfach nur benutzen und damit etwas schaffen. Genauso
wollen sie einfach 'String3 = String1 + String2' schreiben
und nicht lowlevel die Inhalte der Strings rumkopieren und
aneinanderhängen.
MARTIN hat geschrieben:primitiven 'Highlevel-ASM' C
Ich verstehe nicht warum du so abfällig über C schreibst.
Vielleicht weil es aus der Steinzeit der Computerära kommt?
Wenn jemand C kann oder lernen will, dann soll er das tun.
Einem Neueinsteiger sollte man aber nicht empfehlen erstmal
die Steinzeit durchzumachen, wenn er auch gleich in der
modernen Welt lernen kann.
Das gilt für C++, C# und Java gleichermaßen. Sogar bei PB
würde ich niemandem raten erstmal Steinzeit-C zu machen,
bevor er sich mit PB beschäftigt.
Wenn Du Deinem kleinen Sohn lernen willst wie er die moderne
Heizung im Haus selbst anschalten/einstellen kann, wirst Du
ihm doch auch nicht erst lernen wie man mit 2 Hölzern ein
Feuer macht, nur weil man das in der Steinzeit so gemacht hat,
um es dann schön warm in der Höhle zu haben.
MARTIN hat geschrieben:Und das merkt man sofort wenn man so eine "primitive"
Funktion wie sprintf selbst implementieren muss.
Solche Funktionen sind dazu noch unsicher, weil sie eine
unbegrenzte Anzahl Argumente nehmen und auch der
Typ egal ist. Kennst ja das Argument '...' - sowas sollte
man garnicht erst benutzen.
Du bist halt einfach ein C-Coder der nicht davon ablassen will.
Kein Problem, solange Du nicht jedem Einsteiger erzählst er
sollte auch erstmal damit anfangen. Das ist einfach Quatsch.
Ich kann aber nachvollziehen das Du so denkst - war früher
auch jahrelang auf einem ASM-Trip.
Allerdings habe ich mich deutlich weiterentwickelt und empfehle
Einsteigern heute gleich eine moderne Sprache zu lernen.
Warum sollten die erst Jahre mit uraltem Zeug verschwenden,
wenn sie es dann wieder vergessen müßen, um sauberen
Code für die modernen Sprachen zu schreiben?
Naja, mir kann es letztendlich auch egal sein ob Blackskyliner
erstmal ein paar Jahre mit ASM oder C verschwendet, um dann
später auf C++/C#/Java umzusteigen und die moderne Programmierung
zu erlernen.
Dich wird man eh nicht davon überzeugen können. Habe
gesagt was ich davon halte, fertig.