Python est aujourd’hui présent dans des domaines qui semblaient autrefois très éloignés les uns des autres : scripts système, applications Web, science des données, enseignement, automatisation, intelligence artificielle et calcul scientifique. Cette polyvalence pourrait donner l’impression qu’il a été conçu dès l’origine pour devenir un langage universel.
Son histoire est pourtant plus modeste.
Python naît à la fin des années 1980 d’un projet personnel de Guido van Rossum, alors développeur au CWI, le centre néerlandais de recherche en mathématiques et informatique. Son objectif n’est pas de remplacer tous les autres langages, mais de créer un outil agréable à utiliser, lisible, extensible et suffisamment puissant pour les tâches quotidiennes.
Au fil des décennies, cette recherche de simplicité va devenir l’une des identités les plus fortes de Python.
Avant Python : l’expérience d’ABC
Pour comprendre Python, il faut revenir au langage ABC.
Au CWI, Guido van Rossum participe à l’équipe chargée de son développement. ABC est pensé comme un langage facile à apprendre, avec une syntaxe claire et des abstractions de haut niveau.
L’expérience est intellectuellement importante mais son adoption reste limitée.
Van Rossum en retient plusieurs idées positives : la lisibilité, les types de données intégrés et une syntaxe qui évite une partie du bruit visuel des langages plus bas niveau.
Il identifie aussi des limites. ABC est relativement fermé et difficile à étendre. Il s’intègre mal avec le monde Unix et avec les bibliothèques écrites dans d’autres langages.
Python héritera donc autant des qualités d’ABC que de la volonté de corriger ses faiblesses.
Noël 1989 : un projet personnel
À la fin de 1989, pendant les vacances de Noël, Guido van Rossum commence à travailler sur un nouvel interpréteur.
Il souhaite un langage capable de servir de pont entre les scripts shell et les programmes plus complexes.
La syntaxe doit rester lisible, mais le langage doit aussi pouvoir communiquer facilement avec le système et avec du code existant.
Cette extensibilité deviendra fondamentale.
Python sera notamment étroitement lié au langage C : son implémentation de référence, CPython, est écrite en C et permet d’intégrer des extensions natives.
Pourquoi le nom Python ?
Contrairement à une idée répandue, le langage n’est pas nommé d’après le serpent.
Guido van Rossum apprécie la troupe britannique Monty Python et cherche un nom court, distinctif et légèrement irrévérencieux.
Il choisit Python.
Les références humoristiques à Monty Python resteront longtemps présentes dans la documentation et les exemples du langage.
1991 : la première publication publique
En février 1991, van Rossum publie Python sur Usenet.
Les premières versions contiennent déjà plusieurs caractéristiques reconnaissables : fonctions, exceptions, modules et types de données comme les listes et dictionnaires.
Le langage est interprété et interactif. Il permet de tester rapidement une expression dans un terminal, puis d’utiliser les mêmes concepts dans des programmes plus importants.
Cette boucle courte entre idée et résultat contribuera fortement à son succès.
L’indentation comme syntaxe
L’une des caractéristiques les plus visibles de Python est l’utilisation de l’indentation significative.
Dans de nombreux langages, les blocs sont délimités par des accolades ou des mots-clés. Python utilise directement l’indentation.
Ce choix peut surprendre les programmeurs habitués à C, C++ ou Java, mais il poursuit un objectif précis : la structure visuelle du programme doit correspondre à sa structure logique.
Un code mal indenté n’est pas seulement moins joli ; il change de sens ou devient invalide.
Python transforme ainsi une convention de lisibilité en règle du langage.
« Batteries included »
Python ne se limite rapidement plus à son interpréteur.
Sa bibliothèque standard propose des modules pour manipuler fichiers, texte, dates, protocoles réseau, formats de données, compression, tests, processus et bien d’autres tâches.
Cette philosophie est souvent résumée par l’expression « batteries included ».
L’idée est qu’une installation Python doit déjà fournir une boîte à outils suffisamment riche pour résoudre de nombreux problèmes sans rechercher immédiatement une dépendance externe.
Cette approche facilite énormément l’apprentissage et l’automatisation.
Modules, packages et réutilisation
Python adopte un modèle simple de modules : un fichier peut devenir une unité de code importable.
Plusieurs modules peuvent ensuite être organisés en packages.
Cette structure facilite la réutilisation et encourage progressivement la création d’un écosystème externe.
Le langage ne réussira donc pas uniquement grâce à ses fonctionnalités internes. Il réussira aussi parce qu’il devient facile de partager du code.
Python 1.0
Python 1.0 est publié en 1994.
Le langage possède déjà une communauté et continue de gagner des fonctionnalités.
Des concepts issus de la programmation fonctionnelle apparaissent, tandis que le modèle objet se développe.
Python est multiparadigme : il ne force pas tous les problèmes dans une seule manière de programmer, même si les objets prennent une place importante.
Pour replacer cette évolution dans son contexte, notre article sur la programmation orientée objet retrace l’histoire de ce paradigme et son influence sur les langages modernes.
Du CWI à CNRI
En 1995, Guido van Rossum quitte les Pays-Bas pour rejoindre la Corporation for National Research Initiatives (CNRI) aux États-Unis.
Le développement de Python se poursuit dans ce nouvel environnement.
La communauté grandit, Internet facilite les échanges et le langage commence à être utilisé bien au-delà de son cercle initial.
Mais cette croissance soulève une question : comment faire évoluer un langage utilisé par de plus en plus de personnes sans dépendre uniquement des décisions informelles de son créateur ?
Les PEP : écrire l’évolution du langage
En 2000 apparaît un mécanisme qui deviendra essentiel : les Python Enhancement Proposals, ou PEP.
Une PEP est un document qui décrit une proposition importante concernant Python, sa bibliothèque, ses processus ou sa gouvernance.
Ce système rend les décisions plus explicites.
Les arguments peuvent être documentés, discutés et conservés.
Certaines PEP deviennent particulièrement célèbres.
La PEP 8 définit des conventions de style.
La PEP 20, le Zen of Python, rassemble une série d’aphorismes sur la philosophie du langage, dont « Readability counts ».
Les PEP transforment progressivement l’évolution de Python en processus communautaire documenté.
Python 2.0
Python 2.0 est publié en octobre 2000.
Cette version apporte notamment les list comprehensions et un garbage collector capable de mieux gérer certains cycles de références.
Mais Python 2 inaugure aussi une période qui deviendra l’un des épisodes les plus importants de l’histoire du projet.
Le langage continue d’évoluer, mais certaines décisions historiques deviennent difficiles à corriger tout en maintenant une compatibilité totale.
La Python Software Foundation
En 2001, la Python Software Foundation (PSF) est créée.
Cette organisation à but non lucratif protège la propriété intellectuelle liée à Python, soutient la communauté et contribue à financer son développement et ses événements.
La création de la PSF aide Python à devenir un projet durable qui ne dépend ni d’une entreprise unique ni de la situation professionnelle de son créateur.
Cette indépendance sera un avantage majeur dans les décennies suivantes.
PyPI : un écosystème de packages
La bibliothèque standard est riche, mais aucun projet ne peut intégrer tous les besoins.
Le Python Package Index, connu sous le nom de PyPI, devient le dépôt central de packages Python.
Avec l’outil pip, installer une bibliothèque externe devient extrêmement simple.
Quelques commandes suffisent pour ajouter un framework Web, un client réseau, une bibliothèque scientifique ou un outil d’automatisation.
Cette facilité crée un cercle vertueux : plus Python possède de packages, plus il devient utile ; plus il devient utile, plus de développeurs créent de nouveaux packages.
Python dans le Web
Python devient progressivement un langage important du développement Web côté serveur.
Des frameworks comme Django, publié en open source en 2005, proposent une architecture complète pour créer des applications Web.
Flask popularise ensuite une approche plus minimaliste.
FastAPI répond plus récemment aux besoins des API modernes avec un usage poussé des annotations de type.
Python ne concurrence pas JavaScript dans son rôle historique de langage du navigateur. Il s’impose plutôt comme l’une des nombreuses options côté serveur.
Python 3 : accepter de casser la compatibilité
Le plus grand tournant technique de Python arrive en décembre 2008 avec Python 3.0.
L’équipe choisit de corriger plusieurs incohérences historiques, même si certaines modifications rendent le nouveau langage incompatible avec Python 2.
C’est une décision rare et risquée pour un langage déjà largement utilisé.
Parmi les changements visibles, print devient une fonction et le traitement du texte Unicode est profondément rationalisé.
Le résultat est un langage plus cohérent, mais la migration se révèle longue.
Python 2 contre Python 3
Pendant plus d’une décennie, deux générations de Python coexistent.
De nombreuses bibliothèques et applications restent en Python 2 parce que leur migration coûte du temps et présente des risques.
Les développeurs de bibliothèques doivent parfois maintenir les deux versions.
Des outils et conventions apparaissent pour écrire du code compatible.
Cette transition devient une leçon classique de gestion de compatibilité : corriger une conception à grande échelle peut être techniquement souhaitable tout en imposant un coût considérable à l’écosystème.
Le support officiel de Python 2.7 prend finalement fin le 1er janvier 2020.
Python 3 devient alors définitivement la branche moderne du langage.
NumPy et les fondations du calcul scientifique
L’un des facteurs majeurs de la croissance de Python vient du calcul scientifique.
Python lui-même n’est pas toujours le langage le plus rapide pour effectuer des boucles numériques intensives.
Mais il excelle comme langage d’orchestration autour de bibliothèques optimisées.
NumPy fournit des tableaux multidimensionnels et des opérations numériques performantes, largement implémentées dans du code natif.
SciPy ajoute de nombreux algorithmes scientifiques.
Matplotlib devient une référence pour la visualisation.
Python offre ainsi une interface accessible au-dessus de composants très performants écrits notamment en C, C++ ou Fortran.
Ce modèle exploite exactement l’extensibilité recherchée dès les premières années.
Jupyter et l’informatique interactive
Les notebooks jouent ensuite un rôle majeur.
IPython, puis Jupyter, permettent de mélanger code exécutable, texte, équations et visualisations dans un même document interactif.
Cette approche est particulièrement adaptée à la recherche, à l’enseignement et à l’analyse exploratoire.
Un scientifique peut expliquer une méthode, exécuter le calcul et afficher le résultat au même endroit.
Python devient ainsi non seulement un langage de programmation, mais aussi un environnement de travail scientifique.
pandas et la science des données
La bibliothèque pandas apporte des structures de données adaptées à la manipulation de tableaux et séries temporelles.
Avec NumPy, Jupyter et les bibliothèques de visualisation, elle contribue à faire de Python une plateforme majeure de data science.
Les analystes peuvent importer un fichier CSV, nettoyer les données, les agréger, construire des graphiques et préparer des modèles sans changer de langage.
Cette continuité d’outils constitue un avantage considérable.
Python et l’intelligence artificielle
L’explosion récente de Python est étroitement liée au machine learning et à l’intelligence artificielle.
Des bibliothèques comme scikit-learn rendent accessibles de nombreux algorithmes classiques.
TensorFlow et PyTorch utilisent Python comme interface principale tout en exécutant les calculs lourds dans des composants hautement optimisés, souvent sur GPU.
Python joue encore une fois le rôle de langage de coordination.
Sa syntaxe relativement concise permet aux chercheurs d’exprimer rapidement une idée, tandis que les couches inférieures assurent les performances.
Ce compromis a contribué à faire de Python le langage dominant de nombreux workflows d’IA.
Pourquoi Python peut être rapide sans être toujours rapide
Dire que « Python est lent » est à la fois vrai dans certains contextes et trompeur dans d’autres.
CPython exécute généralement du code Python pur moins vite qu’un programme natif optimisé en C ou C++.
Mais une application Python peut déléguer ses opérations coûteuses à des bibliothèques natives.
NumPy peut effectuer une opération sur des millions de valeurs sans exécuter une boucle Python pour chaque élément.
Cette architecture permet de conserver une couche de haut niveau productive tout en utilisant du code bas niveau là où les performances comptent réellement.
Le GIL
CPython possède historiquement un mécanisme connu sous le nom de Global Interpreter Lock, ou GIL.
Il simplifie certains aspects de la gestion interne de l’interpréteur, mais limite l’exécution simultanée de bytecode Python par plusieurs threads dans un même processus.
Cette contrainte est souvent mal comprise.
Elle ne signifie pas que Python est incapable de concurrence ou de parallélisme. Les programmes peuvent utiliser plusieurs processus, effectuer des opérations d’entrée-sortie concurrentes, ou déléguer du calcul à des extensions natives.
Le sujet reste néanmoins important et les versions modernes de Python explorent des architectures permettant une utilisation optionnelle sans GIL.
Un langage d’enseignement
La lisibilité de Python lui donne également une place particulière dans l’éducation.
Un débutant peut afficher un résultat, manipuler une liste ou écrire une fonction avec relativement peu de syntaxe.
Cela ne signifie pas que Python soit un langage « uniquement pour débutants ».
La même syntaxe peut servir à écrire des outils professionnels, des services Web, des pipelines de données ou des logiciels scientifiques.
Cette continuité entre apprentissage et production est l’une de ses forces.
Automatisation et scripting
Python est aussi devenu un outil quotidien pour de nombreux administrateurs, ingénieurs et développeurs.
Renommer des milliers de fichiers, appeler une API, transformer des données JSON, automatiser un déploiement ou générer un rapport peut souvent être réalisé avec un script relativement court.
Le langage se situe ainsi entre les scripts shell très compacts et les applications structurées de grande taille.
Cette position correspond directement à l’un des besoins qui avaient motivé sa création.
Le typage évolue
Python est dynamiquement typé, mais son écosystème a progressivement ajouté des annotations de type.
Elles permettent d’indiquer les types attendus sans transformer nécessairement le langage en système statique obligatoire.
Des outils comme mypy et les analyseurs intégrés aux IDE peuvent exploiter ces informations.
Les annotations sont aussi devenues importantes dans certains frameworks, notamment FastAPI.
Python conserve donc sa souplesse dynamique tout en proposant davantage d’outils pour sécuriser les grandes bases de code.
Guido van Rossum, BDFL
Pendant de nombreuses années, Guido van Rossum porte le titre humoristique de Benevolent Dictator For Life, ou BDFL.
Il dispose du dernier mot sur certaines décisions concernant le langage.
Ce modèle fonctionne tant que la communauté reste étroitement liée à son créateur, mais Python devient progressivement trop important pour reposer durablement sur une seule personne.
En 2018, après un débat particulièrement difficile autour de la PEP 572 et de l’opérateur :=, van Rossum annonce qu’il quitte son rôle de BDFL.
Python doit inventer une nouvelle gouvernance.
Le Steering Council
Après le retrait de Guido van Rossum, plusieurs modèles de gouvernance sont proposés.
La communauté adopte finalement un système reposant sur un Steering Council, un conseil directeur élu.
La PEP 13 décrit son fonctionnement.
Le langage peut ainsi continuer à évoluer sans remplacer le BDFL par un autre dirigeant permanent.
Cette transition est remarquable : un projet créé par une seule personne devient capable d’organiser sa continuité institutionnelle.
Une communauté mondiale
Python ne serait pas ce qu’il est sans sa communauté.
Les conférences PyCon, groupes locaux, projets open source, documentation, forums et programmes éducatifs ont permis au langage de se diffuser dans le monde entier.
La communauté accorde également une grande importance à l’accessibilité pour les nouveaux contributeurs.
Cette culture ne supprime pas les désaccords techniques, mais elle fait partie de l’identité du projet au même titre que la syntaxe.
Python face à Java, JavaScript et C++
Python occupe une place différente des autres grands langages.
Java privilégie une plateforme fortement structurée autour de la JVM, du typage statique et d’un vaste écosystème d’entreprise.
JavaScript possède une position unique parce qu’il est le langage natif des navigateurs Web.
C++ offre un contrôle fin sur les ressources et les performances.
Python privilégie surtout la vitesse de développement, la lisibilité et la capacité à relier facilement des composants existants.
Ces compromis expliquent pourquoi Python est extrêmement populaire dans certains domaines tout en étant moins adapté à d’autres, comme certains systèmes temps réel ou logiciels nécessitant un contrôle très précis de la mémoire.
Les critiques de Python
Le succès n’empêche pas les critiques.
Les performances de CPython peuvent être limitées pour certains calculs en code pur.
Le typage dynamique peut déplacer certaines erreurs vers l’exécution.
La gestion des environnements et dépendances a longtemps été source de confusion.
Le GIL limite certains modèles de parallélisme multithread.
Enfin, la flexibilité du langage permet parfois des styles de code très différents dans une même équipe.
L’écosystème répond progressivement à ces problèmes avec des outils de typage, de packaging, de linting, de formatage et des évolutions de l’interpréteur.
Pourquoi Python a réussi
Le succès de Python ne repose pas sur une innovation unique.
Sa syntaxe lisible réduit le coût d’entrée.
Son interpréteur interactif accélère l’expérimentation.
Sa capacité à appeler du code natif lui permet de servir d’interface à des bibliothèques très performantes.
PyPI rend des centaines de milliers de packages accessibles.
Sa communauté couvre aussi bien le Web que l’éducation, l’automatisation, la recherche et l’IA.
Python est devenu un langage de connexion : il relie des personnes, des domaines et des technologies qui n’utiliseraient pas nécessairement le même outil autrement.
De projet personnel à infrastructure mondiale
Lorsque Guido van Rossum commence Python pendant les vacances de Noël 1989, il ne peut évidemment pas prévoir son rôle futur dans la science des données ou l’intelligence artificielle.
Mais plusieurs décisions prises très tôt se révèlent remarquablement durables : privilégier la lisibilité, rester extensible, proposer des types de haut niveau et rendre l’expérimentation rapide.
L’écosystème a ensuite amplifié ces qualités.
Python montre qu’un langage peut devenir majeur non parce qu’il domine chaque critère technique, mais parce qu’il offre un compromis particulièrement efficace entre simplicité, puissance et interopérabilité.
L’essentiel
Python naît à la fin de 1989 au CWI sous l’impulsion de Guido van Rossum, après son expérience avec ABC.
La première version publique apparaît en 1991.
Le langage met l’accent sur la lisibilité, l’indentation significative, les structures de données de haut niveau et l’extensibilité.
Python 2.0 arrive en 2000, puis la Python Software Foundation structure le projet.
Python 3.0, publié en 2008, accepte de casser une partie de la compatibilité afin de corriger plusieurs choix historiques. La migration depuis Python 2 durera plus de dix ans.
En parallèle, PyPI, NumPy, SciPy, pandas, Jupyter, Django et de nombreuses autres bibliothèques transforment Python en plateforme mondiale.
La data science et l’intelligence artificielle accélèrent encore son adoption.
Après le retrait de Guido van Rossum de son rôle de BDFL en 2018, un conseil directeur élu prend en charge la gouvernance.
Python est ainsi passé d’un projet personnel à une infrastructure communautaire utilisée dans presque tous les domaines de l’informatique.
Questions fréquentes
Qui a créé Python ?
Python a été créé par Guido van Rossum au CWI, aux Pays-Bas. Il commence le projet à la fin de 1989 et publie une première version en 1991.
Pourquoi Python s’appelle-t-il ainsi ?
Le nom vient de la troupe comique britannique Monty Python, et non du serpent.
Python est-il compilé ou interprété ?
Avec CPython, le code source est compilé vers une forme intermédiaire de bytecode, puis exécuté par la machine virtuelle de l’interpréteur. D’autres implémentations peuvent utiliser des stratégies différentes.
Quelle est la différence entre Python 2 et Python 3 ?
Python 3 corrige plusieurs incohérences historiques au prix de changements incompatibles. Python 2 n’est plus officiellement supporté depuis 2020.
Pourquoi Python utilise-t-il l’indentation ?
L’indentation rend directement visible la structure des blocs. Python en fait une partie de la syntaxe afin que la présentation et la structure logique restent cohérentes.
Pourquoi Python est-il populaire en intelligence artificielle ?
Sa syntaxe facilite l’expérimentation et son écosystème fournit des bibliothèques comme NumPy, scikit-learn, TensorFlow et PyTorch, dont les calculs lourds sont souvent exécutés dans du code natif optimisé.
Python est-il un langage orienté objet ?
Python prend pleinement en charge la programmation orientée objet, mais il est multiparadigme et permet également des styles procéduraux ou fonctionnels.
Qu’est-ce que PyPI ?
PyPI est le dépôt central de packages Python. Il permet de distribuer et d’installer des bibliothèques externes, généralement avec pip.
Guido van Rossum dirige-t-il toujours Python ?
Non. Il a quitté son rôle de BDFL en 2018. Python est aujourd’hui gouverné selon un modèle communautaire comprenant un Steering Council élu.
Pourquoi Python reste-t-il important ?
Sa lisibilité, son immense écosystème, sa capacité d’intégration avec d’autres langages et son adoption dans l’automatisation, le Web, la science et l’IA lui donnent une place particulièrement durable.
Découvrez comment Guido van Rossum a conçu Python à partir d’ABC, guidé son évolution et préparé le passage d’un langage personnel à un projet communautaire.