Aller au contenu principal
Bethemesh
BiographieHistoire de l’informatique

Larry Wall : Perl, le langage qui a relié les outils d'Internet

Découvrez comment Larry Wall a créé Perl pour automatiser Unix, traiter le texte et fédérer une communauté, ainsi que les forces et limites de sa conception expressive.

Publié le 24 août 2026Lecture : 13 minPar Équipe Bethemesh
Débutant
Portrait de Larry Wall devant un terminal évoquant Perl, Unix et les expressions régulières
Afficher le sommaire
  1. Entre informatique et linguistique
  2. Avant Perl : rn et patch
  3. Le problème concret qui mène à Perl
  4. Pourquoi Perl est efficace pour le texte
  5. « Il y a plus d’une façon de le faire »
  6. Perl 4 : documentation et communauté en expansion
  7. Perl 5 : du script à une plateforme extensible
  8. CPAN : l’écosystème comme partie du langage
  9. Perl et le premier Web dynamique
  10. Une culture du langage assumée
  11. Perl 6, puis la séparation avec Raku
  12. Pourquoi Larry Wall compte encore
  13. Chronologie
  14. Questions fréquentes
  15. Pourquoi Larry Wall a-t-il créé Perl ?
  16. Que signifie le nom Perl ?
  17. Perl est-il nécessairement illisible ?
  18. Quel rôle CPAN a-t-il joué ?
  19. Perl et Raku sont-ils le même langage ?

Larry Wall crée Perl pour résoudre un ensemble de tâches que les outils Unix disponibles traitent séparément. Il lui faut parcourir des fichiers, reconnaître des motifs, convertir des formats, produire des rapports et coordonner des commandes. Le shell, sed, AWK et C savent chacun accomplir une partie du travail, mais passer constamment de l’un à l’autre alourdit les scripts.

Perl rassemble ces capacités dans un langage dont la priorité est l’utilité pratique. Les expressions régulières font partie de la syntaxe, texte et nombres se manipulent avec peu de cérémonie, et le programmeur peut commencer par un script court avant de structurer une application plus grande.

Ce choix produit une influence considérable sur l’administration des systèmes et le premier Web. Il crée également une tension durable : un langage très expressif laisse au programmeur la responsabilité de ne pas transformer sa liberté en obscurité.

Entre informatique et linguistique

Larry Arnold Wall naît en 1954 à Los Angeles et grandit notamment à Bremerton, dans l’État de Washington. À Seattle Pacific University, son parcours passe par la chimie, la musique et l’informatique avant d’aboutir à un diplôme consacré aux langues naturelles et artificielles.

Il étudie ensuite la linguistique à l’université de Californie à Berkeley avec son épouse Gloria. Leur projet initial est de travailler sur une langue peu documentée et de contribuer à la création d’un système d’écriture. Des raisons de santé les conduisent à rester aux États-Unis, et Wall poursuit sa carrière dans l’informatique.

Cette formation ne fournit pas à elle seule une recette pour Perl, mais elle marque sa manière de penser les langages. Une langue naturelle possède du contexte, des irrégularités, des niveaux de maîtrise et plusieurs formulations acceptables. Elle n’oblige pas son locuteur à connaître toute sa grammaire avant de produire une phrase utile.

Wall transpose volontairement une partie de cette richesse dans la programmation. Là où certains langages recherchent un petit ensemble de constructions orthogonales, Perl accepte parfois des synonymes et des raccourcis adaptés à des situations fréquentes.

Avant Perl : rn et patch

Wall acquiert déjà une réputation dans la communauté Unix avant de publier son langage. Il développe rn, lecteur de nouvelles Usenet qui aide les utilisateurs à parcourir de nombreux groupes et articles. L’outil doit mémoriser l’état de lecture, filtrer des sujets et s’adapter à des usages très personnels.

Il crée aussi patch, programme qui applique à un ensemble de fichiers les différences produites par un outil comme diff. Au lieu d’envoyer une copie complète d’un logiciel, un développeur peut distribuer seulement les changements. Le destinataire les applique même si son arborescence présente de petites différences.

patch devient une pièce essentielle de la collaboration avant les plateformes modernes de gestion de code. Son nom finit par désigner couramment aussi bien le fichier de différences que l’action de le poser.

Ces outils annoncent plusieurs traits de Perl : lecture tolérante de texte produit par d’autres programmes, priorité donnée au travail réel et diffusion du code dans une communauté connectée.

Le problème concret qui mène à Perl

Au milieu des années 1980, Wall travaille sur un projet impliquant plusieurs machines Unix et des données réparties. Il doit extraire des informations, relier des rapports et automatiser des opérations récurrentes. AWK excelle dans le traitement ligne par ligne ; sed transforme du texte ; le shell lance des commandes ; C donne davantage de contrôle mais demande beaucoup plus de code.

Écrire une chaîne différente pour chaque cas devient coûteux. Wall commence donc un langage qui combine les expressions régulières et le modèle motifs-actions d’AWK, les commandes et flux du shell, ainsi que des structures de données et un contrôle proches des langages généraux.

Perl 1.0 est publié sur Usenet le 18 décembre 1987. Le message initial le présente comme un remplacement possible de certaines utilisations d’AWK et de sed, pas comme une théorie universelle de la programmation.

Le nom est interprété plus tard par plusieurs rétroacronymes, notamment Practical Extraction and Report Language. L’usage officiel est toutefois Perl, pas un sigle dont chaque lettre aurait déterminé la conception initiale.

Pourquoi Perl est efficace pour le texte

Dans Perl, la reconnaissance de motifs n’est pas reléguée à une bibliothèque périphérique. Une expression régulière s’écrit directement dans le code et peut déclencher une substitution, extraire des groupes ou contrôler une branche.

Un script minimal peut, par exemple, afficher les lignes contenant un code d’erreur :

while (<STDIN>) {
    print if /ERROR\s+\d+/;
}

La boucle lit implicitement chaque ligne de l’entrée standard. La variable par défaut contient la ligne courante ; le motif s’y applique sans argument explicite ; print la réutilise. Cette densité est utile à un programmeur qui connaît les conventions, mais elle peut désorienter celui qui ne voit pas les valeurs implicites.

Perl propose également tableaux, tables de hachage et conversions contextuelles entre chaînes et nombres. Il distingue un contexte scalaire d’un contexte de liste : une expression peut produire une valeur ou plusieurs selon la manière dont elle est appelée.

Ce système permet des formulations compactes et adaptées au traitement de flux. Il demande en retour de comprendre le contexte choisi par l’opérateur voisin. Une ligne syntaxiquement correcte peut avoir un sens surprenant si le lecteur ne sait pas quel contexte est attendu.

« Il y a plus d’une façon de le faire »

La formule associée à Perl, There’s more than one way to do it, souvent abrégée TIMTOWTDI, résume sa méfiance envers l’idée qu’un problème possède toujours une unique expression légitime.

Cette pluralité aide à adapter le code à son domaine. Un administrateur peut écrire un filtre compact ; une application plus longue peut employer des fonctions nommées, des modules et un style explicite. Le langage autorise une progression plutôt qu’un seul niveau de cérémonie.

La liberté n’est cependant pas gratuite. Deux programmes Perl équivalents peuvent employer des idiomes très différents. Les variables spéciales, expressions régulières denses et effets implicites favorisent parfois des démonstrations brillantes mais difficiles à maintenir.

Les outils use strict et use warnings, les conventions de style, les tests et les revues de code répondent à ce risque. Ils montrent qu’un langage permissif a besoin d’une discipline sociale et outillée. TIMTOWTDI signifie que plusieurs solutions sont possibles, pas que toutes sont également lisibles.

Perl 4 : documentation et communauté en expansion

Les premières versions évoluent rapidement au contact des utilisateurs. Perl 2 adopte notamment une bibliothèque d’expressions régulières plus puissante ; Perl 3 améliore la manipulation de données binaires ; Perl 4 stabilise la branche utilisée au début des années 1990.

La publication de Programming Perl par Larry Wall et Randal L. Schwartz, bientôt surnommé le Camel Book, donne au langage une référence structurée. La documentation ne se contente pas d’énumérer des fonctions : elle transmet les idiomes, l’humour et la culture de la communauté.

Usenet permet aux utilisateurs de signaler des problèmes, proposer des correctifs et échanger des solutions. Wall conserve alors un rôle décisif dans la direction du langage, tout en intégrant les contributions d’un nombre croissant de développeurs.

Ce modèle mêle autorité éditoriale et développement ouvert. Il offre une cohérence que n’aurait pas une collection arbitraire de correctifs, mais crée aussi une dépendance envers le temps et les décisions d’une personne centrale.

Perl 5 : du script à une plateforme extensible

Perl 5, publié en 1994, constitue une refonte majeure. Il introduit notamment les références, des structures de données imbriquées, les fermetures lexicales, un système de modules et les bases d’une programmation orientée objet.

Les références permettent de construire des tableaux de tables, des arbres ou des graphes sans que le langage fournisse une structure spéciale pour chaque cas. Les modules créent des espaces de noms et facilitent la distribution de code réutilisable. L’objet repose sur des mécanismes relativement réduits, dont bless, plutôt que sur un modèle de classes très prescriptif.

Perl peut dès lors rester un langage de scripts rapides tout en soutenir des applications plus vastes. Cette compatibilité avec les petits programmes existants est une force d’adoption, mais elle oblige aussi le langage à conserver de nombreux comportements historiques.

La célèbre formule de Wall selon laquelle Perl 5 introduit « tout le reste, y compris la capacité d’introduire tout le reste » pointe cette extensibilité : la version ne clôt pas la conception, elle fournit des mécanismes pour que l’écosystème l’étende.

CPAN : l’écosystème comme partie du langage

Le Comprehensive Perl Archive Network, lancé au milieu des années 1990 par la communauté, organise la publication et l’installation des modules. CPAN ne vient pas de Wall seul : Jarkko Hietaniemi et de nombreux mainteneurs construisent l’infrastructure, tandis que des milliers d’auteurs alimentent le catalogue.

Son importance dépasse le nombre de paquets. CPAN donne des conventions de nommage, des métadonnées, des tests et un chemin de distribution commun. Un programmeur peut réutiliser une bibliothèque de base de données, de courrier électronique, d’analyse de formats ou de protocole sans repartir de zéro.

Ce modèle annonce les registres devenus essentiels à Python, JavaScript, Rust et d’autres communautés. Il révèle en même temps leurs risques : qualité inégale, dépendances abandonnées, confiance accordée aux auteurs et difficulté de maintenir un graphe de paquets sur plusieurs décennies.

Perl montre tôt qu’un langage ne se résume plus à son interpréteur et à sa syntaxe. Sa valeur dépend aussi de la facilité avec laquelle une communauté partage, teste et maintient ses solutions.

Perl et le premier Web dynamique

Dans les années 1990, les serveurs web utilisent souvent la Common Gateway Interface pour lancer un programme qui génère une réponse HTTP. Perl est déjà installé sur de nombreux systèmes Unix, manipule facilement les chaînes et possède des bibliothèques réseau. Il devient un choix naturel pour formulaires, livres d’or, moteurs de recherche et premiers sites dynamiques.

Cette adoption vaut à Perl le surnom de « ruban adhésif d’Internet ». Des scripts courts relient serveur, fichiers, courrier et base de données à une vitesse difficile à atteindre avec les chaînes de compilation plus lourdes de l’époque.

Le modèle CGI crée néanmoins un nouveau processus par requête et les scripts écrits rapidement peuvent comporter des failles : entrées non validées, commandes shell construites avec des données utilisateur ou permissions excessives. Ces problèmes ne sont pas propres à Perl, mais sa facilité de déploiement les rend visibles à grande échelle.

Des solutions comme mod_perl, puis des frameworks et serveurs applicatifs plus structurés, répondent aux limites de performance et d’architecture. Elles montrent le passage d’une automatisation ponctuelle à des services durables.

Une culture du langage assumée

Wall ne présente pas Perl comme une construction mathématiquement minimale. Dans ses conférences, il le compare aux langues naturelles et défend une optimisation pour l’expression après apprentissage plutôt que pour la seule simplicité du premier contact.

La syntaxe utilise des indices visuels : $ pour une valeur scalaire, @ pour un tableau, % pour une table. Ces marqueurs rendent certaines informations locales très visibles, mais ajoutent un vocabulaire que le débutant doit assimiler.

Le langage valorise aussi trois « vertus » humoristiques du programmeur — paresse, impatience et orgueil — dont le sens technique est d’automatiser le travail répétitif, demander un retour rapide et produire un code dont on puisse être responsable. Ces formules participent à une identité communautaire aussi reconnaissable que la syntaxe.

Cette culture favorise conférences, groupes locaux et partage de modules. Elle a parfois aussi renforcé l’image d’un langage réservé à ceux qui maîtrisent ses jeux de mots et ses idiomes. La pédagogie doit alors distinguer l’humour qui rassemble de l’obscurité qui exclut.

Perl 6, puis la séparation avec Raku

En 2000, Wall annonce une refonte profonde appelée Perl 6. Treize années de compatibilité limitent les changements possibles dans Perl 5 ; la nouvelle branche doit pouvoir repenser syntaxe, types, concurrence et modèle objet.

Wall dirige la conception linguistique à travers des documents appelés Apocalypses et Synopses. L’implantation mobilise cependant de nombreux projets et collaborateurs, dont Parrot puis Rakudo, avec Damian Conway, Allison Randal, Dan Sugalski, Jonathan Worthington et beaucoup d’autres.

L’ambition ralentit la livraison d’un langage stable. Une première spécification officielle accompagnée d’une implantation utilisable arrive en 2015, bien plus tard que beaucoup ne l’avaient anticipé. Pendant ce temps, Perl 5 continue d’évoluer sous sa propre communauté.

En 2019, Perl 6 adopte le nom Raku. Le changement clarifie que Raku est un langage distinct de Perl, même s’ils appartiennent à la même famille historique. Il évite également de présenter Perl 5 comme une version condamnée à attendre son remplacement.

Cette séparation constitue une leçon de conception : une refonte peut libérer l’innovation, mais elle doit reconstruire un écosystème, des outils et une confiance que la compatibilité conservait gratuitement.

Pourquoi Larry Wall compte encore

Perl a perdu une partie de sa visibilité face à Python, PHP, Ruby puis JavaScript côté serveur. Cette évolution ne rend pas ses contributions obsolètes. Les expressions régulières intégrées, les scripts capables de grandir, les registres de paquets et la culture du logiciel distribué ont influencé le paysage dans lequel ces langages se sont développés.

Wall a surtout défendu une idée rarement neutre : un langage est destiné à des humains dotés d’habitudes, de contexte et de niveaux d’expertise différents. La régularité formelle compte, mais elle n’est pas le seul critère ; la capacité à exprimer rapidement une intention réelle compte aussi.

Perl montre les deux faces de ce choix. Sa souplesse peut produire un outil remarquable en quelques lignes et permettre une migration progressive vers une application complète. Elle peut aussi accumuler implicites et idiomes jusqu’à rendre le programme hostile à son prochain lecteur.

L’héritage de Wall ne consiste donc pas à recommander Perl pour chaque projet. Il oblige les concepteurs de langages et les équipes à poser une question plus précise : quelle liberté aide réellement l’utilisateur, et quelle convention faut-il ajouter pour que cette liberté reste partageable ?

Chronologie

  • 1954 : naissance de Larry Arnold Wall à Los Angeles.
  • Années 1970 : études de langues naturelles et artificielles à Seattle Pacific University.
  • Début des années 1980 : développement du lecteur Usenet rn.
  • 1985 : première diffusion de patch, outil d’application de différences entre fichiers.
  • 1987 : publication de Perl 1.0 sur Usenet le 18 décembre.
  • 1988 : Perl 2 améliore notamment le moteur d’expressions régulières.
  • 1989 : Perl 3 ajoute la gestion de données binaires.
  • 1991 : Perl 4 et le premier Programming Perl stabilisent la diffusion du langage.
  • 1994 : publication de Perl 5, refonte extensible avec références et modules.
  • 1995 : mise en place de CPAN par la communauté Perl.
  • Fin des années 1990 : Perl devient un langage majeur de l’administration Unix et du Web dynamique.
  • 2000 : annonce du projet Perl 6.
  • 2015 : première spécification officielle de Perl 6 accompagnée de Rakudo utilisable.
  • 2019 : Perl 6 prend le nom Raku et affirme son statut de langage distinct.

Questions fréquentes

Pourquoi Larry Wall a-t-il créé Perl ?

Il devait automatiser sur Unix des tâches combinant extraction de données, reconnaissance de motifs, conversion de formats et production de rapports. Les outils existants couvraient séparément ces besoins ; Perl les réunit dans un langage de script général.

Que signifie le nom Perl ?

Le nom n’est pas né comme un sigle strict. Des développements comme Practical Extraction and Report Language ont été proposés après coup et décrivent bien certains usages, mais Perl reste le nom officiel.

Perl est-il nécessairement illisible ?

Non. Il permet d’écrire du code structuré, testé et explicite. Sa densité, ses variables implicites et ses nombreux idiomes rendent toutefois l’obscurité plus facile si une équipe n’utilise pas strict, les avertissements et des conventions communes.

Quel rôle CPAN a-t-il joué ?

CPAN a donné à la communauté un catalogue partagé de modules, avec outils d’installation, métadonnées et tests. Il a transformé Perl en écosystème et servi de modèle précoce aux registres de paquets modernes.

Perl et Raku sont-ils le même langage ?

Non. Raku est issu du projet autrefois appelé Perl 6, mais il possède sa propre spécification, ses implantations et sa communauté. Perl continue séparément la lignée de Perl 5.

Sources et références

  1. 1.Perldoc --- Perl history records
  2. 2.Perl.org --- About Perl
  3. 3.Perldoc --- The Perl language interpreter
  4. 4.Larry Wall --- Natural Language Principles in Perl
  5. 5.Larry Wall --- Perl, the first postmodern computer language

Collection

Langages de programmation

  1. 01Grace Hopper : des premiers compilateurs à COBOL
  2. 02John Backus : FORTRAN, la notation BNF et le refus du code machine
  3. 03Dennis Ritchie : le langage C au cœur d'Unix
  4. 04FORTRAN : prouver qu'un compilateur peut rivaliser avec l'assembleur
  5. 05Le langage C : rendre les systèmes portables sans masquer la machine
  6. 06Niklaus Wirth : de Pascal à Oberon, concevoir par la simplicité
  7. 07Bjarne Stroustrup : concevoir C++ sans renoncer aux performances
  8. 08Pascal : apprendre à programmer en rendant la structure visible
  9. 09C++ : de C with Classes à un langage généraliste
  10. 10La programmation orientée objet : objets, messages et abstractions réutilisables
  11. 11Guido van Rossum : créer Python pour rendre le code lisible
  12. 12Brendan Eich : JavaScript, du prototype de Netscape au standard du Web
  13. 13James Gosling : l'ingénieur à l'origine de Java
  14. 14Python : la lisibilité, les batteries incluses et un écosystème mondial
  15. 15Java : écrire une fois, exécuter partout
  16. 16JavaScript : le langage qui a rendu le Web interactif
  17. 17Ken Thompson : d’Unix au langage Go, la simplicité comme méthode
  18. 18John McCarthy : Lisp et l’idée de programmer avec des symboles
  19. 19Alan Kay : Smalltalk et l’ordinateur comme média personnel
  20. 20Barbara Liskov : l'abstraction qui a rendu le logiciel modulaire
  21. 21Robin Milner : ML, la preuve assistée et les langages de l’interaction
  22. 22Brian Kernighan : AWK, Unix et l'art d'expliquer le code
  23. 23Anders Hejlsberg : de Turbo Pascal à C# et TypeScript
  24. 24Larry Wall : Perl, le langage qui a relié les outils d'Internet
  25. 25Yukihiro Matsumoto : Ruby et le bonheur du programmeur
  26. 26Rasmus Lerdorf : PHP et la démocratisation du Web dynamique

Cet article vous a-t-il été utile ?