Le mois dernier, le langage de programmation Python a célébré son 30e anniversaire. Mais sans une équipe pour le maintenir, la langue ne serait probablement jamais devenue aussi populaire qu’aujourd’hui.
Pour en savoir plus sur la communauté Python, TechRadar Pro s’est entretenu avec Pablo Galindo, un ingénieur logiciel de Bloomberg et l’un des cinq membres du Conseil de pilotage Python.
Il nous a parlé du modèle de développement Python, du rôle d’un développeur principal CPython et de la façon dont il voit le langage évoluer dans les années à venir.
Sommaire
Qu’est-ce qui vous a amené à Python et qu’est-ce qui vous a poussé à vous y tenir?
J’ai une formation en physique. Dans le cadre de mon doctorat. études à Grenade sur la rotation des trous noirs, je me suis retrouvé à travailler beaucoup avec des simulations informatiques. J’ai fini par approfondir le côté logiciel des choses de cette façon. Des années plus tard, j’ai découvert qu’en fait, la physique et la finance utilisent toutes deux de nombreuses techniques de calcul haute performance similaires.
Alors que j’avais de l’expérience avec C, C ++ et Fortran, ce qui m’a conduit à Python, c’est qu’il est si facile de commencer à expérimenter et à faire des choses avec le langage. Si vous apprenez un morceau du langage de programmation, vous pouvez le connecter au reste très facilement. Vous pouvez également exposer certains programmes existants écrits en C, C ++ et Fortran à Python. Alors que la communauté participe à un cycle de rétroaction aussi étroit avec la langue elle-même, elle est constamment itérée.
Qu’implique le fait d’être un développeur principal CPython?
Et quelle est selon vous votre contribution la plus significative à la langue?
Être un développeur principal de CPython implique une responsabilité considérable. Vous êtes en charge de l’implémentation des nouvelles fonctionnalités, de l’examen des propositions des contributeurs, de la correction des bugs, de la gestion de l’infrastructure et de la stabilité de chaque nouvelle version. De plus, vous êtes également responsable d’adhérer aux valeurs de l’équipe de développement principale de Python et de créer une communauté diversifiée et respectueuse. Ce dernier point est assez important et implique de nombreuses compétences «non techniques» afin de comprendre différents points de vue, origines et cultures.
Dans mon travail quotidien, je fais partie de l’équipe Python Infrastructure de Bloomberg, qui aide à prendre en charge l’expérience Python pour les plus de 2000 ingénieurs qui l’utilisent pour coder une variété de fonctions et d’analyses à travers les produits de l’entreprise. En fait, nous avons plus de 100 millions de lignes de code Python chez Bloomberg.
Nos ingénieurs participent également à l’écosystème Python, contribuant et même entretenant certains projets open source, prenant la parole lors de conférences et même organisant des événements.
Parallèlement à mon travail chez Bloomberg, j’ai également été récemment élu au Conseil de pilotage Python, et je suis au service de la communauté Python en contribuant ainsi à l’avenir du langage.
Quel est le travail du Python Steering Council?
Fonctionne-t-il en tandem avec la Python Software Foundation?
Le rôle du Conseil de pilotage est de défendre Python en tant que langage, d’assurer son avenir et de rendre sa contribution aussi accessible et inclusive que possible.
Nous sommes un ensemble de volontaires, le groupe exact changeant après chaque version majeure de Python. En fin de compte, la plupart de notre travail est en tant que caisse de résonance et conduit pour les changements et les améliorations qui proviennent de la communauté éminente et passionnée de Python.
En ce qui concerne la relation du Conseil avec la Python Software Foundation, le PSF existe pour détenir et gérer la marque Python, soutenir la communauté et l’écosystème au sens large par le biais de subventions, des services back-end sur lesquels tout le monde s’appuie, ainsi que du plus grand rassemblement annuel. pour la communauté Python, la PyCon US Conference. Pendant ce temps, le Conseil se concentre sur l’état actuel et futur et la direction de la langue elle-même.
Décrivez brièvement le modèle de développement de Python pour quelqu’un qui n’est pas familier avec le processus
Un PEP est une proposition d’amélioration de Python, qui est un document de conception technique décrivant de nouvelles fonctionnalités pour Python, ou pour son processus ou son environnement. Le public principal pour lequel ceux-ci sont créés sont les principaux développeurs de l’interpréteur de référence CPython, ceux du Conseil de pilotage Python et les développeurs travaillant sur d’autres implémentations de la spécification du langage Python.
N’importe qui dans la communauté peut soumettre ces PEP, mais souvent vérifier et discuter publiquement d’une idée avant de la formaliser en PEP peut aider à gagner du temps et à gagner du temps. Des discussions peuvent avoir lieu dans les groupes de discussion de la communauté pour savoir si une idée potentielle est originale ou pourrait être rejetée en fonction des commentaires donnés précédemment, par exemple.
À partir de là, des séries de révisions éditoriales ont lieu et l’approbation finale est confiée au Conseil de pilotage. À condition qu’il réponde aux critères minimaux, nous arriverons à un verdict et, s’ils sont approuvés, les changements proposés seront inclus dans les futures versions de la langue.
En ce qui concerne le pouvoir du Conseil par rapport aux PPE, nous avons le large pouvoir d’accepter ou de rejeter ces changements. Cependant, nous visons à utiliser ces pouvoirs le moins possible et à nous concentrer plutôt sur la recherche d’un consensus là où nous le pouvons. Nous essayons toujours de rassembler autant d’informations et de points de vue de la communauté et de l’équipe de développement principale que possible. Dans certains cas, il est impossible de prendre une décision qui conviendra à tous les points de vue. Il est donc très important que le Conseil de pilotage considère toutes les informations disponibles afin de pouvoir prendre des décisions qui profiteront au langage Python dans son ensemble, avec une vision cohérente pour l’avenir.
Outre votre travail avec CPython, vous exécutez de nombreuses simulations avec le langage lié à votre expérience de physicien théorique. Selon vous, qu’est-ce qui fait de Python un bon langage pour cela?
Pour beaucoup de ces simulations, le noyau est normalement écrit dans un langage compilé tel que C ou C ++, utilisant généralement des accélérateurs tels que CUDA, OPENMP, etc. Contrairement aux langages de compilation, Python ne vous oblige pas à attendre que votre code soit compilé et pour obtenir des commentaires plus tard. L’exposition du noyau pour qu’il puisse être utilisé en Python facilite considérablement l’itération, le test et l’expérimentation.
Le langage s’intègre également très bien avec les bibliothèques de code tierces. Par exemple, si vous avez une bibliothèque qui est déjà écrite avec un langage rapide, Python fonctionnera avec elle afin que vous puissiez communiquer avec d’autres outils. Cette intégration a souvent conduit Python à être appelé un «langage de collage» – il peut puissamment établir un pont entre différentes applications et bibliothèques de code. Python vous permet également de créer des tests automatiques, ainsi que des visualisations de manière très efficace, ce qui est assez important lorsque vous avez affaire à des simulations numériques.
Comment voyez-vous l’évolution de Python à l’avenir?
Les tâches de science des données effectuées par les mathématiciens, les physiciens et les scientifiques du monde entier reposent souvent sur Python. L’utilisation de Python dans le back-end des services Web et d’autres architectures orientées services est également un choix très populaire, et je ne peux que le voir grandir à l’avenir. Le langage offre non seulement de nouvelles fonctionnalités pour aider à ce type de tâches à chaque itération, mais la syntaxe elle-même change également pour s’adapter à ces usages. Un bon exemple de ceci est lorsque Python a ajouté un nouvel opérateur d’infixe pour rendre la multiplication matricielle beaucoup plus facile. Il est assez difficile de prédire comment l’utilisation du langage augmentera au fil du temps, mais il semble que l’adoption de Python pour la science et l’ingénierie des données continue de croître de manière significative et que l’écosystème des bibliothèques se développe également.
Dans le même temps, c’est également un langage de passerelle très important pour les personnes qui s’initient au développement de logiciels pour la première fois. Comme toute autre communauté de développeurs, la communauté Python se divise souvent sur des problèmes. Les besoins et les désirs des différents groupes par rapport à la langue sont parfois en conflit les uns avec les autres. Une partie importante de mon rôle est de comprendre ces besoins et d’aider à tracer une voie qui répond le mieux aux besoins de chacun – ainsi qu’à la langue elle-même.
Pour s’assurer que le langage reste compétitif dans tous ces domaines, il est important que nous, les développeurs principaux, maintenions le langage efficace et rapide et veillons à ce que la syntaxe évolue de manière à rendre le langage flexible et expressif, sans être préjudiciable. aux utilisateurs qui apprennent la langue pour la première fois. Nous déployons des efforts importants pour nous assurer que Python reste aussi rapide que possible – un problème particulièrement difficile compte tenu de la dynamique du langage déjà – en implémentant différentes optimisations sophistiquées. Nous devons également garder à l’esprit que le langage doit rester aussi accessible que possible aux nouveaux arrivants, ce que nous faisons en améliorant les erreurs de syntaxe et la documentation.