Archive for the 'Geschichten' Category

Userfriendly war gestern

Ein vergessenes “Werk” aus dem letzten Jahr, jetzt digital.

Als ich – junger Informatiker, mit Namen Pascal Dehlm – eine Stelle als Programmierer fand, wurde mir bewusst, wie wenig ich von der Programmiererwirklichkeit verstand. Für meinen ersten Tag hatte ich folgende Parameter: ich sollte mich gegen 8:35 Uhr – mit dem versteckten Hinweis möglichst pünktlich zu sein – im Büro 3.12 einfinden. Dort würde mich dann
ein Herr C. Zuse einweisen. Schließlich ist der Tag da. Mit meinem ältlichen Golf parke ich unweit von meiner zukünftigen Arbeitsstelle.
Fünf Minuten nach acht. Ich bin überpünktlich. Ich versuche mir vergebens eine Zigarette an zu zünden, lasse es allerdings sein und greife zum Kaugummi mit Minzgeschmack. Jetzt fange ich an meine Unterlagen nochmals zu sortieren. Alles in richtiger Reihenfolge.

Der Zeiger meiner Armbanduhr bewegt sich auf 35 Minuten zu. Gedämpfte Schritte nähern sich Büro 3.12 und mir. Panik befällt mich ungewollt, doch ich zwinge mich zur Disziplin. Ein Mann im Anzug und mit leicht ergrautem Haar tritt mir entgegen.
„Guten Tag, sie müssen der neue Bewerber – Pascal Dehlm – sein.“ Er reicht mir die Hand zum Gruß. Guten Tag, erwidere auch ich. Er öffnet die Tür von Büro 3.12 und bittet mich Platz zu nehmen. Ich reiche ihm die Unterlagen, die ich mitbringen sollte. CORNELIUS ZUSE, LEITER DER ABTEILUNG FÜR PROGRAMMIERUNG – steht auf einem Messingschild.
„C/C++, Java, SAP/ABAP… mhm…“, murmelte Zuse, während er meine Referenzen studierte.
„Ich werde Ihnen nun Ihren Arbeitsplatz zeigen und Ihnen unsere Grundsätze der
Softwareentwicklung erläutern. Wenn Sie mir dann bitte folgen möchten“, sagte Zuse der mich freundlich doch bestimmt zur Tür hinaus komplimentierte. Ich kam mir wie eine jämmerliche Gestalt neben Zuse vor, der so etwas wie Autorität und Erfahrung ausstrahlte.
„Sie müssen wissen, dass wir keine gewöhnliche Software herstellen. In Zeiten, wo der User mit netten, verschnörkelten Progrämmchen verhätschelt und in Watte gepackt wird“, begann Cornelius Zuse, „muss man als Softwareentwickler einen ganz anderen Kurs einschlagen, verstehen Sie?“
Ich begriff nicht. Vielleicht war ich auch nur zu beschränkt, um die großen Visionen zu erfassen.
Zögerlich fragte ich: „Welcher Kurs wäre das?“
„Um es mal so zu beschreiben: Userfriendly war gestern. Moderne Software muss dem Anwender wieder das Fürchten lehren. Viel zu lange haben sich Generationen von Programmierern die Vorstellungen des Users diktieren lassen. Sicherlich hat man Sie schon während der Ausbildung darauf getrimmt.“
Ich erinnere mich an meine nicht allzu ferne Studienzeit. Userfriendly…
„Darum rate ich Ihnen einige Gewohnheiten in diesem Sinne abzulegen. Grafische Benutzeroberflächen werden bei uns generell unübersichtlich und verwirrend gestaltet. Damit trennt sich schon einmal die erste Spreu vom Weizen. Ebenso soll die Software rigoros gegen die Eingabefehler des Benutzers vorgehen. Als erzieherische Maßnahme hat sich der Systemabsturz bewährt. Und für die ganz hart gesottenen User gibt es unser 1200 seitenstarkes Handbuch, mit allerlei kryptischen Beschreibungen. Das hat bis jetzt noch niemand geschafft.“
„Ich verstehe“, antworte ich.
„Ah, ich sehe, Sie haben unsere Grundsätze schon verinnerlicht, Herr Dehlm. Noch ein Tipp von mir: Programmieren Sie in INTERCAL“

Neulich im .\bin Verzeichnis:

Hier mal wieder was selbst Geschriebenes. Viel Spaß beim Lesen :)
Wer es als pdf für die heimische Platte möchte: hier

C – Compiler: „Hey Leute, hat jemand zufällig meine C-Standardbibliothek gesehen? Die such’ ich schon seit gestern.“

Debugger: „Was suchst du? – Is’ mir schlecht…“

Der C++ – Compiler kommt zu den anderen: „Morgen allerseits. Gut geschlafen?“

Debugger und C – Compiler: „Morgen.“

C – Compiler: „Ähm, weißt du vielleicht wo meine C-Standardbibliothek ist?“

C++ – Compiler: „Müsste die nich’ im Include Verzeichnis sein?“

C – Compiler: „Eigentlich schon. Aber da kann ich sie nicht finden. Hab schon alles auf den Kopf gestellt.“

C++ – Compiler: „Dann kann ich dir auch nich’ helfen. Ich muss heute noch einiges kompilieren und so.“

C – Compiler: „So, so – wir haben also was zu tun. Du willst mir doch bloß nicht helfen!“

Debugger: „Bitte nicht so laut. Ich weiß bald nicht mehr was Null und was Eins ist.“

C++ – Compiler: „Ich schrei’ ja nicht so durchs ganze Betriebssystem wie der da.“

C – Compiler: „Auch noch frech werden. Gib’s doch zu, du hast meine C-Standardbibliothek. War doch schon mal so. Und meine 2D-Grafik Bibliotheken hätte ich auch gerne mal wieder.“

C++ – Compiler: „Da, nimm sie. Haben mich eh nicht vom Hocker gerissen.“

Debugger zu sich selbst: „Ich muss hier raus. Is mir schwindelig. Wo geht’s noch mal zum Papierkorb?“

Als der Debugger das Verzeichnis verlassen will kommt ihm ein aufgelöster Java-Interpreter entgegen.

Java – Interpreter: „…javac! Debugger, pass doch auf!“

Debugger: „Entschuldigung. Warum wird’s mir nur so übel… ohje – ich muss weg!“

Java – Interpreter: „Wo willst du hin?!“

Im .\bin Verzeichnis angekommen, streiten sich der C – und der C++ – Compiler heftig.

C++ – Compiler: „Wer programmiert denn heute noch in C? OOP kannste nich’. Bei den Typprüfungen nehmen wir’s ja auch nicht so genau – stimmt’s oder hab’ ich recht?“

C – Compiler: „Ohne C gäbe es kein C++ – so sieht’s doch aus. Wenigstens unterstütze ich meinen gesamten Sprachumfang, was ja bei dir nicht gerade der Fall ist, wenn man mal genauer in der Sprachspezifikation nach schaut.“

Der Java – Interpreter: „Hallo? – Ich hab mal eine Frage… Hey!“

Für einen Moment unterbrechen die beiden Compiler ihre Streitigkeiten und wenden sich dem Java-Interpreter zu, der betreten in einer Ecke steht.

C – und C++ – Compiler: „Was ist denn mit dir los?“

Java – Interpreter: „Javac ist weg! Habt ihr ihn vielleicht gesehen?…“

C – Compiler: „Nein. Ohne Laufzeitbibliotheken wird er sicherlich bald wieder zurückkommen. Wo ist denn eigentlich der Debugger?“

C++ – Compiler: „Der wird wohl geflüchtet sein – vor dir.“

C – Compiler: „Pass` auf, sonst gibt’s hier gleich ‘ne Exception!“

Java – Interpreter: „Wenn ihr den Debugger sucht, der ist mir vorhin begegnet und sah gar nicht gut aus.“

Das Verzeichnis geht auf und der Debugger tritt sichtlich erleichtert ein.

Debugger: „Hi, Leute!“

Debugger, zum Java-Interpreter gewandt: „Streiten die beiden immer noch?“

C++ – Compiler: „…ha, Exceptions! Du bist doch immer auf no warnings eingestellt.“

C – Compiler: „Jetzt kannste was erleben!“

Der C – Compiler wechselt vom bin ins Include-Verzeichnis und sucht die C++ Bibliotheken.

C – Compiler: „Ab damit ins Nirvana! Aber, was ist das denn? Die sind ja weg?!“

Wieder im bin-Verzeichnis.

C – Compiler: „Die ganzen Include-Dateien sind weg!“

C++ – Compiler: „Was? Du machst einen Scherz, oder?“

C – Compiler: „Nee, das ist mein vollster Ernst. Alles weg – auch deine Bibliotheken.“

Debugger: „Sind das nicht so Dateien mit einem .h am Ende? So welche hab ich vorhin im Papierkorb auf dem Desktop gesehen. Vielleicht sind das die.“

C++ – Compiler: „Da hat wohl jemand nachgeholfen – will ja aber niemanden angucken.“

C – Compiler: „Du glaubst doch etwa nicht, dass ich meine eigenen Bibliotheken lösche!“

Debugger: „Schluss jetzt! Ihr führt euch hier auf wie unfertige Alpha-Versionen!“

Debugger: „Ruhe? – Danke. Wenn hier alles plötzlich verschwindet, kann es nur zwei Erklärungen geben. Erstens: unsere gute alte Festplatte leidet langsam aber sicher an Alzheimer oder zweitens: der User pfuscht mal wieder am System rum. Danke für eure Aufmerksamkeit, jetzt könnt ihr gerne weiter streiten.

Debugger zum Java – Interpreter: „Falls bei dir noch ein Speicherplätzchen frei ist, würde ich gerne bei dir einziehen, falls die da nicht aufhören wollen. Ich sag’s ja: Compiler ohne ihre Laufzeitbibliotheken sind fürchterlich!“

In der Zwischenzeit betritt der Java – Compiler das Verzeichnis. Nur der Java – Interpreter bemerkt ihn.

Java – Interpreter: „Javac, wo warst du? Hab mir Sorgen um dich gemacht.“

Java – Compiler: „Ich hab dich auch gesucht, aber du warst nicht in unserem Verzeichnis – aber macht ja jetzt auch nichts mehr. Das neue Eclipse ist da! Und bei der Gelegenheit: ihr seit alle eingeladen zur Einweihungsfeier.“

Java – Interpreter: „Neues Eclipse? Nicht schlecht.“

Java – Compiler: „Der User fährt wohl gerade eine Updatesession, soweit ich mitbekommen habe. Hey C++ und Kollege, guckt doch nicht so finster. Vielleicht… “

Und da platzt auch schon WinZip herein: „Moin, sind die Compiler – C und C++ – vielleicht zu gegen? Ich hätt’ da was zum Entpacken.“

C – und C++ – Compiler: „Ja, hier drüben!“

WinZip: „So, dat wär’n ein paar Include-Dateien. Noch’n schönen Tach auch.“

C – Compiler: „Guck dir das mal an!“

C++ – Compiler: „OpenMP – für C und C++. Da haben wir uns umsonst gestritten.“

Später auf der Eclipse-Einweihungsparty.

Java – Compiler: „Und, wie gefällt dir unsere neue IDE?“

Java – Interpreter: „Echt Klasse.“

C++ – Compiler: „…also das mit deinen Grafik-Bibliotheken, das war nicht so gemeint. Tut mir leid.“

C – Compiler: „Ja, das mit dem Sprachumfang ist mir dämlicherweise so rausgerutscht. Den Output hätte ich prüfen sollen.“

C++ – Compiler: „Wieder Freunde?“

C – Compiler: „Ja, Kollege.“

Debugger: „Mediaplayer – mach’ mal die Mucke an! Aber was fetziges, bitte.“