Programmieren unter Beachtung der Ressourcen

Aufgrund des RAM-Mangels kommt langsam ein Thema auf, über das ich mich seit Jahren wundere.

Wenn ich Programme überarbeiten oder korrigieren soll, fiel mir bei jüngeren Programmieren immer wieder auf: Es wird RAM verbraucht, als ob man sich darüber keine Gedanken machen müsse.

Früher, zu malloc()-Zeiten, hatte man sofort ein Gefühl dafür, wie sich der eigene Programmierstil auf RAM und Geschwindigkeit auswirken würde.

Heute, bei der objektorientierten Programmierung, kann man, ohne Hintergrundwissen, das nur noch schwer abschätzen. Oder bei Listen und mehrdimensionalen Arrays. Beim Amiga hat man noch mit zweifach verketteten Listen programmiert und ist so durch die Elemente durchgewandert. Heute merke ich im Gespräch, daß vielen Programmierern die Grundidee von „Quicksort“ nicht klar ist.

Da frage ich mich immer: Was wird da eigentlich in Programmierkursen gelehrt?

Somit, wenn ich Programmieren lehre, sage ich immer mit als erstes:

  • Funktionen
  • Unter-Funktionen
  • RAM
  • Wird RAM kopiert oder nur Zeiger übergeben?
  • Wie viele Libraries muß ich einbinden oder aufrufen? Die müssen ja auch alle in den Speicher.

Jeder, der das auch so hält, kennt das Gefühl, wenn man merkt, der andere weiß überhaupt nicht, wovon man redet.

Offenbar ändert sich das jetzt. Seit zehn Jahren mMn überfällig.

Anmerkung und Ergänzung: Von Assembler bin ich abgekommen, nicht nur durch die Apple-Prozessoren. Der Code, der von einem guten C-Compiler erzeugt wird, genügt in meinen Augen. Handoptimierter Assembler-Code ist nur noch bei Firmware-Programmierung vonnöten. Man benötigt aber auch Assembler-Kenntnisse, wenn man z.B. alten GPS-Code wieder flottmachen möchte…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert