Die Python-Paradoxie

August 2004

In einem kürzlichen Vortrag habe ich etwas gesagt, das viele Leute verärgert hat: dass man für ein Python-Projekt klügere Programmierer gewinnen könnte als für ein Java-Projekt.

Ich wollte damit nicht sagen, 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 zu genau der Art von Programmierern macht, die Unternehmen einstellen sollten. Daher das, was ich mangels eines besseren Namens die Python-Paradoxie nennen werde: Wenn ein Unternehmen sich entscheidet, seine Software in einer vergleichsweise esoterischen Sprache zu schreiben, kann es bessere Programmierer einstellen, weil es nur diejenigen anzieht, denen es wichtig genug war, sie zu lernen. Und für Programmierer ist die Paradoxie noch ausgeprägter: Die Sprache, die man lernen sollte, wenn man einen guten Job bekommen will, ist eine Sprache, die man nicht nur lernt, um einen Job zu bekommen.

Nur wenige Unternehmen waren bisher schlau genug, das zu erkennen. 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, wünschen sie sich auch Python-Erfahrung.

Ein Freund von mir, der fast alle weit verbreiteten Sprachen kennt, benutzt für die meisten seiner Projekte Python. Er sagt, der Hauptgrund sei, dass er die Art und Weise mag, wie Quellcode aussieht. Das mag ein trivialer Grund sein, die eine Sprache der anderen vorzuziehen. Aber es ist nicht so trivial, wie es klingt: Wenn man programmiert, verbringt man mehr Zeit damit, Code zu lesen als ihn zu schreiben. Man schiebt Quellcode-Blobs herum, so wie ein Bildhauer Tonklumpen. Eine Sprache, die Quellcode hässlich macht, ist für einen anspruchsvollen Programmierer quälend, so wie Ton voller Klumpen für einen Bildhauer wäre.

Bei der Erwähnung 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 keine harsch aussehende Syntax, sondern die Notwendigkeit, Programme aus den falschen Konzepten aufzubauen. Perl mag wie eine Zeichentrickfigur aussehen, die flucht, aber es gibt Fälle, in denen es Perl konzeptionell Python übertrifft.

Bisher 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 Leuten geschaffen und benutzt werden, denen Programmieren wirklich am Herzen liegt. Und das sind tendenziell diejenigen, die es gut machen.