Zitat:
Die eckigen Klammern sind bereits eine Dereferenzierung.
Ja, bestreite ich ja garnicht
Die Frage ist nur, gibt es einen syntaktischen Unterschied was man dereferenziert ?
Nein, in Assembler dereferenziert man immer Zeiger, dort gibt es nichts anderes. Somit gibt es auch keinerlei Unterscheidungsmerkmale die uns stören könnten. In PASCAL gibt es im Grunde auch nur Zeiger, logisch die CPU arbeitet halt nur mal so und nicht anders.
Wichtig ist doch nur der Unterschied für uns Menschen in informeller Natur. Dieser Unterschied definiert die Leistungsfähigkeit der Programmiersprache. Je abstrakter, sprich unspezifischer, unsere Programmiersprachen werden desto mehr muß der Compiler stupide Arbeit übernehmen, und desto mehr können wir uns bei der Arbeit auf die wirklich relevanten Sachen konzetrieren die keine Maschine wie ein Compiler heutzutage UNS abnehmen kann.
Und das ist die Zielsetzung des Lösens von komplexen Problemen.
Jede Vereinheitlichung in der Syntax die zu einer höheren Abstraktion führen wird ist also exakt der richtige Weg.
Und der Verzicht auf die explizite Dereferenzierung im Source ist genau so ein Schritt zu höherer Abstraktion. Wir bestimmen damit über unsere Programmiersprache das von jetzt an der Compiler UNS die Arbeit mit der expliziten Dereferenzierung abzunehmen hat und somit wird diese Derefernzierung in unseren Augen impliziert !!
Und wieder ist ein unnötiger informeller Schritt in unseren Source ausgemerzt worden.
Schau mal: argumentierst du FÜR die explizite Dereferenzierung so ignorierst du alle neueren Entwicklungen in den Programmiersprachen. Theoretisch müsstest du ausschließlich nur in Assembler, ja sogar nur mit Lochstreifen programmieren wollen.
Irgedwann einmal werden wir so programmieren: "baue eine
TCP/
IP Verbindung auf und downloade alle notwenigen Dateien". Der Compiler wird dies übersetzen können und dann Additionen, Speicherkopierungen,
API Aufrufe, Objekte erzeugen und freigeben, sogar explizit intern Dereferenzierungen durchführen. Also all das was wir heute noch von Hand erledigen müssen. So ein Program bestünde heutzutage noch aus Millionen von Quelltextzeilen, aber in Zukunft wird dem Compiler dafür nur der obige Satz ausreichend sein.
Für uns Menschen bedeutet es aber das wir innerhalb eines gesprochenen, ja eventuell nur gedachten, Satzes exakt die Zielsetzung für die Maschine definieriert haben, mehr wollen wir doch garnicht.
Kannst du nun diese Entwicklung in unserer Arbeit leugnen ??
Ich meine also das die Abschaffung der expliziten Dereferenzierung nur ein klitzekleiner Schritt in die richtige Richtung bei der Evolution unserer Programmeirsprachen ist.
Aus dieser logischen Konzequenz heraus programmiere ich eben, da wor es geht, in Delphi immer mit der impliziten Dereferenzierung.
Aber, grundsätzlich kann das jeder so halten wie er möchte, man muß sich eben immer im klaren sein das man die Zeichen der Zeit so eventuell mißachtet.
Gruß Hagen