DAS PYTHON-PARADOXON
OriginalAugust 2004
In einem kürzlichen Vortrag sagte ich etwas, das viele Menschen verärgerte: dass man klügere Programmierer für ein Python-Projekt gewinnen kann als für ein Java-Projekt.
Ich meinte damit nicht, dass Java-Programmierer dumm sind. Ich meinte, dass Python-Programmierer klug sind. Es ist viel Arbeit, eine neue Programmiersprache zu lernen. Und die Leute lernen Python nicht, weil es ihnen einen Job verschafft; sie lernen es, weil sie wirklich gerne programmieren und mit den Sprachen, die sie bereits kennen, nicht zufrieden sind.
Was sie genau zu der Art von Programmierern macht, die Unternehmen einstellen sollten. Daher nenne ich es, mangels eines besseren Namens, das Python-Paradoxon: Wenn ein Unternehmen sich entscheidet, seine Software in einer vergleichsweise esoterischen Sprache zu schreiben, wird es in der Lage sein, bessere Programmierer einzustellen, weil es nur diejenigen anzieht, die sich genug darum gekümmert haben, sie zu lernen. Und für Programmierer ist das Paradoxon noch ausgeprägter: Die Sprache, die man lernen sollte, wenn man einen guten Job bekommen möchte, ist eine Sprache, die die Leute nicht nur lernen, um einen Job zu bekommen.
Bisher haben nur wenige Unternehmen genug Verstand gehabt, dies zu erkennen. Aber es gibt auch hier eine Art Auswahl: Es sind genau die Unternehmen, für die Programmierer am liebsten arbeiten würden. Google zum Beispiel. Wenn sie Java-Programmierjobs ausschreiben, wollen sie auch Python-Erfahrung.
Ein Freund von mir, der fast alle weit verbreiteten Sprachen kennt, verwendet Python für die meisten seiner Projekte. Er sagt, der Hauptgrund sei, dass ihm die Art und Weise gefällt, wie Quellcode aussieht. Das mag wie ein oberflächlicher Grund erscheinen, eine Sprache der anderen vorzuziehen. Aber es ist nicht so frivol, wie es klingt: Wenn man programmiert, verbringt man mehr Zeit damit, Code zu lesen, als ihn zu schreiben. Man schiebt Blobs von Quellcode herum, wie ein Bildhauer Blobs aus Ton. Eine Sprache, die Quellcode hässlich macht, ist für einen anspruchsvollen Programmierer frustrierend, so wie Ton voller Klumpen für einen Bildhauer.
Beim Erwähnen von hässlichem Quellcode werden die Leute natürlich an Perl denken. Aber die oberflächliche Hässlichkeit von Perl ist nicht die Art, die ich meine. Echte Hässlichkeit ist nicht eine grob aussehende Syntax, sondern die Notwendigkeit, Programme aus den falschen Konzepten zu bauen. Perl mag wie eine Cartoonfigur aussehen, die flucht, aber es gibt Fälle, in denen es Python konzeptionell übertrifft.
Bis jetzt jedenfalls. Beide Sprachen sind natürlich bewegliche Ziele. Aber sie teilen, zusammen mit Ruby (und Icon, und Joy, und J, und Lisp, und Smalltalk) die Tatsache, dass sie von Menschen geschaffen und verwendet werden, die sich wirklich um Programmierung kümmern. Und diese neigen dazu, es gut zu machen.