- L’analyse conclut que la cause du déclin de Perl tenait à une culture de développement conservatrice et fermée, et non à des limites techniques
- La fierté d’une approche exclusive et d’une posture "d’expert" issue de la culture des administrateurs de systèmes UNIX à l’origine aurait freiné l’évolution du langage
- La séparation de Perl 6 est considérée moins comme un échec technique que comme une manifestation de conflits internes et de conservatisme au sein de la communauté
- Au même moment, Ruby on Rails, PHP et Python ont prospéré avec des cultures plus ouvertes et accessibles, remplaçant la place de Perl
- Perl reste un langage de script essentiel dans les environnements POSIX, mais son influence comme langage de développement de référence a diminué
Les origines culturelles et les limites de Perl
- Perl est né dans la culture des administrateurs de systèmes UNIX, dominée par des blagues internes comme RTFM et luser, avec des normes plutôt fermées
- Cette culture valorisait la monopolisation des connaissances et le maintien de barrières à l’entrée, et considérait la difficulté elle-même comme un signe de compétence
- Il en est résulté une structure fortement collective, avec une forte résistance face aux nouveaux utilisateurs et au changement
- Cette attitude est comparée à une culture de forteresse assiégée
- Les membres internes faisaient leur propre difficulté technique un motif de fierté, et négligeaient les tentatives de simplification venues de l’extérieur
- Cela a conduit à une structure de type caste, selon laquelle seuls les « qualifiés » peuvent entrer
Structure de la communauté Perl et scission de Perl 6
- Perl affiche le principe TIMTOWTDI (There Is More Than One Way To Do It)
- Mais ce principe a renforcé le conservatisme de l’évolution du langage : le cœur du langage est resté figé et l’innovation a été repoussée vers la périphérie de CPAN
- La structure centrée sur CPAN a engendré une confusion de dépendances (dependency hell)
- Perl 6 est apparu comme le résultat d’un conflit interne et le symbole d’une division
- Perl 5 privilégiait l’utilité pratique et la stabilité, Perl 6 visait l’innovation et l’idéal : une bipolarisation culturelle s’en est suivie
- Le développement de Perl 6 a été retardé de plus de 15 ans, et il a été qualifié de « projet open source le plus waterfall »
- À cette époque, Perl était peu accueillant pour les nouveaux développeurs et la communauté est devenue plus fermée
L'essor des langages concurrents
- Ruby conserve une syntaxe proche de Perl, tout en faisant de la « joie du programmeur » et de la bienveillance des valeurs centrales
- Ruby on Rails a connu un succès fulgurant grâce à des outils conviviales pour les développeurs et une structure cohérente
- Perl a créé plusieurs frameworks similaires, mais leur diffusion a échoué faute de compatibilité mutuelle et de facilité d’intégration
- PHP s’est imposé comme un langage centré sur l’utilisateur, avec une installation et un déploiement simples, ce qui lui a permis une adoption de masse
- Devenu l’ossature de plateformes comme WordPress, il s’est imposé comme le langage d’entrée de génération des développeurs web
- Python a démarré dans un cadre académique, en maintenant une évolution progressive et des principes de conception clairs
- Après son adoption par Google, il a connu une croissance stable, et sa philosophie « batteries incluses » (batteries included) a garanti sa praticité
Le présent et l'héritage de Perl
- Perl demeure un langage de script POSIX installé par défaut sur la plupart des systèmes
- Il reste largement utilisé dans de nombreux systèmes hérités et scripts d’automatisation
- Mais il est presque inexistant comme choix par défaut dans de nouveaux projets
- Les principales innovations laissées par Perl
- Intégration des expressions régulières et extension syntaxique
- Distribution de paquets basée sur Internet via CPAN et vérification des signatures
- Diffusion des concepts de bâti de test automatisé (TAP) et de CI
- Réduction de la frontière entre shell et programmation système par l’intégration des fonctionnalités POSIX
- Innovation en documentation grâce au système POD
Conclusion : la culture qui a façonné le succès et le déclin
- Perl a connu une croissance explosive dans les débuts du web des années 1990 en reliant deux cultures (administrateurs UNIX et développeurs web)
- Pourtant, une culture conservatrice et fermée n’a pas su s’adapter au changement, ce qui l’a fait sortir du courant dominant
- Malgré cela, Perl est reconnu comme l’un des langages qui ont posé les bases du développement logiciel moderne
- L’auteur affirme que Perl ne disparaîtra pas et qu’il demeurera tant que POSIX existera
- Aujourd’hui, des langages émergents comme Rust ou TypeScript empruntent à nouveau le chemin de transition culturelle autrefois parcouru par Perl
2 commentaires
Quand je vois un texte qui affirme que Perl a une syntaxe proche de Ruby, je doute de son originalité. C’est une formule souvent citée dans les critiques classiques de Perl, mais je ne l’ai jamais ressentie en usage réel ; j’ai donc l’impression qu’on meuble vaguement le propos en copiant de vieux articles, ou qu’on laisse le reste à l’IA, ce qui a conduit à accepter sans esprit critique d’anciens textes critiquant le Perl legacy.
Avis Hacker News
J’ai toujours trouvé pesante cette mise en scène de la communauté Perl, façon « moines et magiciens »
Et la culture du code en une seule ligne pour avoir l’air malin ne me plaisait pas non plus ; Python paraissait bien plus sérieux et « normal »
La syntaxe semble volontairement complexe, et il y a plein d’endroits impossibles à comprendre sans la documentation
Bien sûr, à l’époque la concision du code avait de l’importance, mais en 2025 c’est beaucoup trop peu accueillant
On dirait une idée improvisée par quelqu’un dans D&D qui serait restée gravée pour toujours dans le livre de règles
À l’inverse, Python mettait l’accent sur « une seule manière claire » et encourageait un code propre
On pouvait aussi écrire du beau Perl, mais c’était un choix conscient du développeur
Avec l’indentation imposée, Python garantissait même aux débutants un minimum de lisibilité
Mais le langage lui-même était tellement expressif que cela nuisait paradoxalement au code partagé
Pour le traitement de texte, Perl reste excellent, mais comme langage de collaboration c’était difficile
Contrairement à l’image exagérée de la communauté, son côté humain m’a marqué
Le côté joueur de Perl semblait au contraire plus honnête et moins grave
Mais au final, Python est devenu dominant et Perl est peu à peu tombé dans l’oubli
Je pense que la culture dogmatique de la communauté Perl a accéléré le déclin du langage
Un ami qui m’avait fait découvrir Linux était un fanatique de Perl, et j’ai fini par couper les ponts à cause de son attitude RTFM, à se moquer des gens quand ils ne savaient pas
Je n’ai quasiment jamais interagi avec la communauté Perl ; je l’utilisais à l’époque où on réglait tout en cherchant sur Google
Il y avait trop de symboles comme @ et %, ce qui le rendait moins accessible que Ruby ou Python
Ruby, conçu dès le départ comme un langage orienté objet, paraissait bien plus naturel
Quand les optional type hinting de Python étaient imprécis, ça ne faisait qu’ajouter de la confusion
Si cela devait être exact, ce serait déjà un système de types contraignant, pas un hint facultatif
Dans les années 90 sur IRC, quelqu’un m’a dit RTFM, mais il s’est avéré que c’était une blague et un événement d’accueil des débutants
J’ai effectivement bu un café avec des magiciens Perl et reçu du mentorat, et cette expérience a été un tournant dans ma vie de programmeur
Je me souviens encore de cette phrase entendue à l’époque — « Perl it forward! »
Le phénomène qui consiste à confondre la dopamine obtenue après avoir galéré avec une bonne expérience est répandu dans toute l’industrie informatique
C’est toujours confus, et on enchaîne les « pourquoi ont-ils fait ça comme ça ? »
Honnêtement, Perl a simplement disparu parce que d’autres langages étaient meilleurs
Comme on ne fabrique pas un produit avec une carte de prototypage, Perl était le produit d’expérimentations
Par exemple, si on reçoit
@arraycomme scalaire, cela ne renvoie que sa longueur : une forme de dépendance au contexteComme Toyota contre Honda, au fond c’était surtout une question de goût
La syntaxe des références de Perl, son OO peu pratique, et les réglages répétitifs comme use strict; / use warnings; finissaient par fatiguer
Rails était bien plus concis et sûr, et le timing historique était parfait
Perl a été mon premier langage de cœur, mais j’ai complètement basculé vers Python en 2012
Aujourd’hui encore, quand je vois des scripts Perl dans du code legacy, je ressens le soulagement de m’être dit « j’ai vraiment bien fait de migrer »
Le code Perl comportait très peu de commentaires, et l’abus des expressions régulières rendait la lisibilité catastrophique
Désormais, je résous ce genre de problèmes avec l’approche orientée objet de Python
J’ai beaucoup utilisé Perl, mais j’ai fini par passer à Python à cause des problèmes de qualité de CPAN
Les modules CPAN cassaient souvent, et il fallait souvent les corriger soi-même
Dans les années 90 et au début des années 2000, l’écart était assez sensible
Si Perl est mort, c’est parce que d’autres langages ont fini par avoir un écosystème comparable à CPAN, et
parce que sa syntaxe flexible convenait mal à la collaboration en équipe
On pouvait distribuer des modules facilement, sans SWIG ni magie de types compliquée,
et les retards de développement sans fin de Perl 6 ont porté le coup de grâce
en environnement collaboratif, la charge cognitive augmentait de façon exponentielle
Python externalisait bien mieux ce débat avec le système des PEP, ce qui était beaucoup plus efficace