LE PARADOXE DU PYTHON
OriginalAoût 2004
Dans une conférence récente, j'ai dit quelque chose qui a contrarié beaucoup de gens : il était possible de faire travailler sur un projet Python des programmeurs plus intelligents que sur un projet Java.
Je ne voulais pas dire par là que les programmeurs Java sont stupides. Je voulais dire que les programmeurs Python sont intelligents. Apprendre un nouveau langage de programmation demande beaucoup de travail. Et les gens n'apprennent pas Python parce que cela leur permettra d'obtenir un emploi ; ils l'apprennent parce qu'ils aiment vraiment programmer et ne sont pas satisfaits des langages qu'ils connaissent déjà.
Ce qui fait d'eux exactement le genre de programmeurs que les entreprises devraient vouloir embaucher. D'où ce que j'appellerai, faute d'un meilleur nom, le paradoxe Python : si une entreprise choisit d'écrire son logiciel dans un langage relativement ésotérique, elle pourra embaucher de meilleurs programmeurs, car elle n'attirera que ceux qui auront pris la peine de l'apprendre. Et pour les programmeurs, le paradoxe est encore plus prononcé : le langage à apprendre, si vous voulez obtenir un bon emploi, est un langage que les gens n'apprennent pas simplement pour obtenir un emploi.
Seules quelques entreprises ont eu l'intelligence de s'en rendre compte jusqu'à présent. Mais il y a là aussi une sorte de sélection : ce sont précisément les entreprises pour lesquelles les programmeurs aimeraient le plus travailler. Google, par exemple, qui annonce des offres d'emploi en programmation Java, demande également une expérience en Python.
Un de mes amis, qui connaît presque tous les langages les plus utilisés, utilise Python pour la plupart de ses projets. Il explique que la principale raison est qu'il aime l'apparence du code source. Cela peut sembler une raison frivole de choisir un langage plutôt qu'un autre. Mais ce n'est pas si frivole qu'il y paraît : quand vous programmez, vous passez plus de temps à lire du code qu'à l'écrire. Vous déplacez des amas de code source comme un sculpteur déplace des amas d'argile. Ainsi, un langage qui rend le code source laid est exaspérant pour un programmeur exigeant, comme le serait un sculpteur de l'argile pleine de grumeaux.
Quand on évoque un code source laid, les gens pensent bien sûr à Perl. Mais je ne parle pas de la laideur superficielle de Perl. La vraie laideur n'est pas une syntaxe grossière, mais le fait de devoir construire des programmes à partir de concepts erronés. Perl peut ressembler à un personnage de dessin animé qui jure, mais il existe des cas où il surpasse Python sur le plan conceptuel.
Jusqu'ici, en tout cas. Les deux langages sont bien sûr des cibles mouvantes . Mais ils partagent, avec Ruby (et Icon, et Joy, et J, et Lisp, et Smalltalk) le fait qu'ils sont créés et utilisés par des gens qui se soucient vraiment de la programmation. Et ce sont généralement ceux qui le font bien.