Der Martin: Welche Sprache sollte man zuerst lernen?

Beitrag lesen

Hallo,

Sicher, nur ist es aber so, dass praktisch alle Programme, die in Sprachen mit unsicheren Pointern geschrieben sind, irgend welche Bufferoverflows haben.

nein, nur wenn der Programmierer nicht aufgepasst hat. :-)

Vor dem Hintergrund, dass die allermeisten Anwendungen bestimmt nicht direkt auf Speicheradressen arbeiten müssen, ...

Aber könnten! Und das macht viele Operationen erheblich performanter.

Beim Programmieren ist meines Erachtens vor allem Abstraktion, Algorithmik und die Organisation der Software insgesamt wichtig ...

Da stimme ich unbedingt zu.

[...] die das Verständnis der tatsächlichen Abläufe nicht gerade einfacher macht, sondern eher schwieriger.
Wenn man die verstehen will, muss man natürlich von der Hardware anfangen.

Richtig, und das gehört meines Erachtens ebenso elementar zu den Grundzügen der Programmierung wie das eben angesprochene Verständnis von Algorithmen und Strukturen.

Meines Erachtens gewinnt man aber keinen Eindruck davon, wie Programme oder Algorithmen strukturiert sind, wenn man mit Assembler Zahlen zwischen Registern hin und her schuppst.

Stimmt, da ist man schon eine (oder mehrere) Abstraktionsebene tiefer. Und ich finde es schade, wenn ein Hochsprachen-Programmierer auf dieser Ebene plötzlich passen muss. Das ist so, als wenn ein Facharzt plötzlich nicht mehr weiter weiß, wenn es um elementare biochemische Vorgänge geht.

Da sieht man einfach nicht mehr, welche Idee dahinter steckt und kann seine Ideen auch nicht so einfach Formulieren. Das Wissen ist sicher Hilfreich, aber kein direkter Einstieg ins Programmieren sondern eher in Rechnerarchitektur.

Der Einstieg erfolgt im Idealfall von beiden Enden aus simultan.

Call-by-reference referenziert die aufgerufenen Variablen und verändert diese.

Genau.

Übergibt man Referenzen by-value verändert man keine anderen Variablen sondern nur referenzierte Datenstrukturen (so fern es keine Referenzen auf Variablen gibt, was dann aber oft nicht der Fall ist).

So wie beim Call-By-Reference, wo man ja auch nur die referenzierten Daten verändern kann. Also wo liegt der Unterschied, außer in der Schreibweise?

Gut's Nächtle,
 Martin

--
Ja, ja... E.T. wusste schon, warum er wieder nach Hause wollte.