DAS PYTHON-PARADOXON
OriginalAugust 2004
In einem Vortrag habe ich kürzlich etwas gesagt, was viele Leute verärgert hat: dass man für die Arbeit an einem Python-Projekt intelligentere Programmierer finden könne als für die Arbeit an einem Java-Projekt.
Damit wollte ich nicht sagen, dass Java-Programmierer dumm sind. Ich wollte sagen, dass Python-Programmierer schlau sind. Es ist viel Arbeit, eine neue Programmiersprache zu lernen. Und die Leute lernen Python nicht, weil sie damit einen Job bekommen; sie lernen es, weil sie wirklich gerne programmieren und mit den Sprachen, die sie bereits kennen, nicht zufrieden sind.
Das macht sie genau zu der Art von Programmierern, die Unternehmen einstellen möchten. Daher nenne ich es in Ermangelung eines besseren Namens das Python-Paradoxon: Wenn ein Unternehmen sich dafür entscheidet, seine Software in einer vergleichsweise esoterischen Sprache zu schreiben, kann es bessere Programmierer einstellen, weil es nur diejenigen anzieht, die sich genug dafür interessieren, diese Sprache zu lernen. Und für Programmierer ist das Paradoxon noch ausgeprägter: Die Sprache, die man lernen muss, 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 das erkannt. Aber auch hier findet eine Art Selektion statt: 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 gängigen Sprachen beherrscht, verwendet Python für die meisten seiner Projekte. Er sagt, der Hauptgrund dafür sei, dass ihm das Aussehen des Quellcodes gefällt. Das mag wie ein nichtiger Grund erscheinen, eine Sprache einer anderen vorzuziehen. Aber es ist nicht so nichtig, wie es klingt: Wenn Sie programmieren, verbringen Sie mehr Zeit damit, Code zu lesen, als ihn zu schreiben. Sie schieben Quellcodeklumpen hin und her, wie ein Bildhauer Klumpen aus Ton macht. Eine Sprache, die Quellcode hässlich macht, ist für einen anspruchsvollen Programmierer genauso unerträglich wie Ton voller Klumpen für einen Bildhauer.
Bei der Erwähnung von hässlichem Quellcode denken die Leute natürlich an Perl. Aber die oberflächliche Hässlichkeit von Perl ist nicht die Art von Hässlichkeit, die ich meine. Wirklich hässlich ist nicht die harsch aussehende Syntax, sondern die Tatsache, dass man Programme auf der Grundlage der falschen Konzepte erstellen muss. Perl mag wie eine fluchende Zeichentrickfigur aussehen, aber es gibt Fälle , in denen es Python konzeptionell überlegen ist.
Bisher jedenfalls. Beide Sprachen sind natürlich bewegliche Ziele. Aber sie haben, genau wie Ruby (und Icon, und Joy, und J, und Lisp und Smalltalk), die Tatsache gemeinsam, dass sie von Leuten entwickelt und verwendet werden, denen das Programmieren wirklich am Herzen liegt. Und das sind in der Regel diejenigen, die es gut machen.