· 

Über „Echte Programmierer“

Während meiner Recherche zum Thema Freepascal und Lazarus fiel mir dieser Text in die Hände.


Der Autor, Bernd Leitenberger, bespricht darin einen Aufsatz über „Echte Programmierer“ und „Müsli-Fresser“. Während „Echte Programmierer“ noch jedes Bit beim Vornamen kennen, den Code unlesbar, aber dafür auf jedes Bit optimiert schreiben und am besten das System so kryptisch wie möglich machen, Unix und Linux als Beispiel, und C und C++ als Programmiersprache. Die anderen Programmierer, die Warmduscher, Mäuseschubser und Müsli-Fresser, die schreiben ihre Programme in einer wirklichen Hochsprache. Strukturiert, mit Funktionen und Unterprogrammen oder gleich objektorientiert. Programme, die man in drei Jahren noch lesen kann. 

 

Wobei: spätestens mit Ubuntu wurde Linux wesentlich bedienerfreundlicher, gerade auch für Mäuseschubser wie mich. Natürlich haben „echte Programmierer“ auch nur Verachtung für grafische Oberflächen über. XWindow ist für sie eben: dreimal xterm (Terminal) und eine xclock (Analoguhr) damit man weiß wann Feierabend ist. 

 

Das Linuxer, wie Windows-User auch, streng konservativ sind, wenn es darum geht, neue Wege zu gehen, hat man ja 2010 schon gemerkt. Als Ubuntu weg von Gnome 2 gegangen ist, und einen eigenen Desktop lancierte, Unity-Desktop, der zwar durchaus benutzbar war, aber eben anders bedient wurde und das Menü nicht mehr an der Stelle wie zuvor war. Genau so ging es auch Gnome 3. Bei Windows war es dieser Windows 8 Moment. Aber natürlich bauen Echte Programmierer ein Linux from Scratch nur mit Kommandozeilenunterstützung.

 

Ich gebe es zu: Ich bin gerne Mäuseschubser. Und so werde ich auch mit C und C++ nicht so warm. Ja, ich habe es mal gelernt, gerade auch wenn man Objective-C können muss. Lange Zeit war das die einzige Möglichkeit nativ für Mac OS X zu programmieren. Vor allem die ersten Versionen hatte all das was an der Sprache C verleidet hat: das unsägliche Speichermanagement. Und: Zeiger. Dies führte dann dazu, das viele Programme für MacOS X am Anfang massive Speicherlöcher öffneten, die am Ende dazu führten dass das Programm abstürzte. Nach einigen bescheidenen Nachbesserungen ab Mac OS X Leopard gab es schon etwas wie eine Garbage Collection die hinter dem Programmierer aufräumen sollte, aber erst mit Swift wurde es einsteigerfreundlich und programmiererfreundlich. 

 

Ich weiß: Echte Programmierer ficht das nicht an. Die programmieren noch so, als hätten die Computer immer noch gerade mal 8 KB oder weniger Speicher. Und holen sich auf die Unlesbarkeit eines Codes einen herunter. 

 

Aber wirklich sinnvoll ist das nicht. Zwar ist C eher prädestiniert Spaghetti-Code, noch mehr als das vielgeschmähte Basic, zu schreiben, man kann aber auch in ABAP schlechte Reports schreiben. Ich kenne so etwas. Gerade mit der Zeit gewachsene und erweiterte Reports an denen schon viele gearbeitet haben. Mal hat einer mit Funktionen gearbeitet, der nächste mit Klassen und natürlich nichts dokumentiert. Und das bei einem Report, an dem der gesamte Firmenablauf hängt. Mit Pascal oder Python wird das schwerer. Pascal verlangt eine Struktur und eine genaue Abfolge. Man kann nicht mitten im Code eine neue Variable einführen. Python verlangt eine genaue Form beim Einrücken des Codes. Da kann man nicht einfach das gesamte Programm in eine Zeile klatschen. 

 

Dazu kommt eigentlich nur eines: Die Sprache ist erst einmal egal. Glaubt mir. Ich habe einige Programmiersprachen gesehen und darin programmiert. Und hier gilt: Kennst du eine, kennst du die meisten. Kennst du C? Fein, dann kannst du das meiste von C++, Java, C#, F# und Swift. Wenn du besser abstrahieren kannst, dann kannst du auch Pascal. Gut bei Swift ist das Cheatsheet schon vier Seiten groß, Swift 2 kam noch mit zwei Seiten aus. 

 

Der große Unterschied liegt in den APIs. Jede Sprache bringt auf die eine oder andere Art ein Framework mit, entweder als Klassenbibliothek, Funktionsliste oder beides zusammen. Und da scheiden sich ja die Geister. Ich mag die LCL von Lazarus, die an die FCL von Borland angelegt ist. Swift hat Cocoa von Apple im Gepäck. C# bringt die Frameworks von Microsoft mit. Und damit bekommt man erst die Programme zum fliegen. Die meisten Programmiersprachen bringen von Haus aus ohne Bibliotheken noch nicht einmal eine Möglichkeit mit, einen Text auf der Konsole auszugeben. Daher spielt es kaum eine Rolle, in welcher Sprache ein Programm geschrieben ist. 

 

Und man muss auch nicht mehr nur mit C arbeiten. Anfang der 90’er war C beim Betriebssystembau Pflicht. Vielleicht weil es eben mehr Freiheiten bot als andere, was aber bei Windows auch zu den massiven Sicherheitsproblemen beitrug. Aber die Zeiten sind schon lange vorbei. Genau wie die Zeiten von  Assembler. Es gibt einfach nur wenige Situationen, wo es nötig ist, direkt auf den Prozessor zuzugreifen. 

 

Und wie Herr Leitenberger meint: „Aufwachen: Die Welt ändert sich!“ stimme ich ihm da voll umfänglich zu: Ich liebe Pascal! Deshalb bin ich ein Echter Programmierer.