Netzwerkprodukte (20)

(Themenanfang)

Noch in den sechziger Jahren war es unabdingbar, daß ein Autofahrer sich zumindest grundlegend mit der Technik seines Fahrzeugs auskennen mußte, wollte er nicht riskieren, unvermittelt mit rauchendem Motor mitten in der Landschaft liegen zu bleiben. Knapp zwanzig Jahre später (als ich meinen Führerschein machte) brauchte man Kenntnisse der Verkehrsregeln; ansonsten setze man sich auf den Fahrersitz und fuhr - im Zweifel sogar mit automatischer Kupplung - einfach los.

Zu dieser Situation finden sich eine Reihe Analogien, wenn man den Gebrauch von Computern Mitte der achtziger Jahre mit jenem von heute vergleicht. Als ich anfing, mich mit dieser Technik auseinander zu setzen, ging die Zeit gerade erst zu Ende, in der man BASIC-Programme schrieb, um Kontakt mit dem Betriebssystem zu nehmen. Schon damals begann bereits die Ära von Maus und Desktop, Fenstern und Menus - trotzdem war es längst noch nicht möglich, den technischen Hintergrund komplett auszublenden: spätestens, wenn man einen Drucker anschließen wollte, mußte man in Schichten des Betriebssystems einsteigen, die nicht mit der Maus, sondern mit einem Texteditor zwecks Bearbeitung von Konfigurationsdateien bedient wurden.

Wo man selbst als "normaler" User gelegentlich unter die Motorhaube schauen mußte, blieb jemandem, der auch noch eigene Programme laufen lassen wollte, nichts übrig, als die Basisprinzipien zu lernen, die einen Computer zum Leben erwecken, sprich: man mußte - früher oder später - Maschinensprache lernen. Ich kenne aus meiner Entwickler-Generation niemanden, der nicht zumindest rudimentäre Kenntnisse in Assembler hat - sei es, um wenigstens gelegentlich einige Zeilen Inline-Assembler einzustreuen, oder nur zur Kontrolle des Outputs des C-Compilers auf der Suche nach Optimierungen in Geschwindigkeit oder Speicherverbrauch.

Meine jüngeren Kollegen starteten bereits mit einem völlig anderen Handwerkszeug: wo ich - als Anfänger - nur mit Mühe begriffen hatte, wie "Pointer" funktionieren, konnten sie schon in Büchern nachlesen, wie man z.B. polymorphe Listen verwaltet. Wo ich noch gelernt habe, welche Bedeutung der Programcounter hat [1], wird heute objektorientiertes Programmieren im ersten Semester Informatik vermittelt [2]. Mit anderen Worten: wo ich noch wissen mußte, wie man einen Motor zerlegt, sitzt die heutige Generation bereits im Rennauto und trainiert die schnellste Linie durch die Kurven [3].

Wesentlich radikaler sieht man diesen Umbruch natürlich, wenn man sich die heutigen User anschaut. Was vor zwanzig Jahren der Spielplatz einer technisch begeisterten "Elite" war, ist heute definitiv jedem zugänglich: man kauft sich ein Notebook mit vorinstallierter Software, steckt einen Stecker ein, und surft im Internet [4].

  1. [1] ..z.B. um Module "zu Fuß" nach dem Laden im Speicher relozieren...
  2. [2] Als ich vor kanpp fünfzehn Jahren C++ gelernt habe, war es für mich ein Kulturschock, mit völlig neuen Paradigmen konfrontiert zu werden, die sich nur schwer in meine bisherige Erfahrung einordnen ließen. Ich habe bis heute gewisse Vorurteile gegen die (unnötige) Verschwendung von Resourcen, über die die Jüngeren wahrscheinlich heimlich lächeln.
  3. [3] Das hat nicht nur, aber weit überwiegende Vorteile.
  4. [4] Das bringt nicht nur, aber weit überwiegend Probleme - vor allem, wenn man es mit einer Welt zu tun hat, in der die Rechner immer wichtiger werden.