Loading...

LE PARADOXE DE PYTHON

Original

Août 2004

Dans une conférence récente, j'ai dit quelque chose qui a dérangé beaucoup de gens : que vous pourriez obtenir des programmeurs plus intelligents pour travailler sur un projet Python 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. C'est beaucoup de travail d'apprendre un nouveau langage de programmation. Et les gens n'apprennent pas Python parce que cela leur donnera 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 en fait exactement le type de programmeurs que les entreprises devraient vouloir embaucher. D'où ce que, faute d'un meilleur nom, j'appellerai le paradoxe de Python : si une entreprise choisit d'écrire son logiciel dans un langage comparativement ésotérique, elle pourra embaucher de meilleurs programmeurs, car elle n'attirera que ceux qui se soucient suffisamment 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 été assez intelligentes pour réaliser cela jusqu'à présent. Mais il y a aussi une sorte de sélection qui se produit ici : ce sont exactement les entreprises pour lesquelles les programmeurs aimeraient le plus travailler. Google, par exemple. Lorsqu'ils annoncent des emplois de programmation Java, ils veulent également une expérience en Python.

Un ami à moi qui connaît presque tous les langages largement utilisés utilise Python pour la plupart de ses projets. Il dit 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 : lorsque vous programmez, vous passez plus de temps à lire du code qu'à en écrire. Vous déplacez des blocs de code source comme un sculpteur déplace des blocs d'argile. Donc, un langage qui rend le code source moche est exaspérant pour un programmeur exigeant, tout comme de l'argile pleine de grumeaux le serait pour un sculpteur.

À la mention de code source moche, les gens penseront bien sûr à Perl. Mais la laideur superficielle de Perl n'est pas celle que je veux dire. La vraie laideur n'est pas une syntaxe dure, mais le fait de devoir construire des programmes à partir des mauvais concepts. Perl peut ressembler à un personnage de dessin animé jurant, mais il y a des cas où il surpasse Python conceptuellement.

Jusqu'à présent, en tout cas. Les deux langages sont bien sûr des cibles mobiles. Mais ils partagent, avec Ruby (et Icon, et Joy, et J, et Lisp, et Smalltalk) le fait qu'ils sont créés par, et utilisés par, des personnes qui se soucient vraiment de la programmation. Et ce sont généralement celles qui le font bien.