Dans une interview avec Microsoft Reactor, van Rossum a été interrogé sur l'avenir de Python et si le langage de programmation verrait un jour une version 4.0. Il a répondu que lui et les membres de l'équipe de développement de Python n'étaient pas vraiment enthousiasmés par l'idée de Python 4, ayant appris de précieuses leçons lors de la transition de Python 2 à Python 3 lorsque ce dernier a fait ses débuts dans sa forme finale en 2008. « Je ne suis pas ravi de l'idée de Python 4 et personne dans l'équipe de développement de base ne l'est vraiment – ​​donc il n'y aura probablement jamais de 4.0 et nous continuerons à numéroter jusqu'à 3.33, au moins. Nous avons appris retenu la leçon de Python 3 vs 2, et c'est donc presque tabou de parler d'un Python 4 sérieusement. », a-t-il déclaré.
Environ un an après avoir pris sa retraite en 2019, Guido van Rossum est revenu aux affaires en novembre 2020 avec un nouveau poste chez Microsoft. En rejoignant la firme de Redmond, il a déclaré sur Twitter qu'il s'efforcera de rendre l'utilisation de Python encore meilleure. Cela ne sera pas uniquement sur Windows, mais sur toutes les plateformes, ce qui devrait permettre de le rendre plus attrayant et plus compétitif. En effet, depuis la dernière décennie, Python est en concurrence avec des langages plus jeunes et jugés plus modernes par leurs créateurs et leur communauté.
Ces langages sont, entre autres, Rust, Go, Julia et TypeScript. Il y a quelques semaines, Guido a eu l'occasion de revenir sur cette concurrence lors d'une interview. Il semblait dire qu'il n'y avait pas un meilleur langage de programmation, mais que chaque nouveau langage essayait d'améliorer les tares qu'il a identifiées dans un ou plusieurs langages précédents, ajoutait de nouvelles méthodes et fonctionnalités, etc. L'interprétation de son allocution laisse penser que c'est ce qu'ont fait les créateurs de Rust en rendant plus sûre la gestion de la mémoire.
Rust
Rust est un langage de programmation open source qui permet de créer des logiciels fiables et efficaces. Développé par Mozilla Research, la première version du langage est parue en 2010 et il jouit aujourd'hui d'une grande popularité dans toute l'industrie. Pour beaucoup, Rust remplacera à la longue le langage C dans la programmation système. Selon ses partisans, il devrait permettre d'éliminer les bogues de mémoire présents dans le code écrit en C et C++. Poussé par une grande communauté, Rust est entré en 2020 dans le top 20 de l'indice de popularité Tiobe pour la première fois.
Pour Guido, Rust est un "excellent" langage de programmation qui mérite tout l'enthousiasme à son égard. « Cela semble être un langage génial – pour certaines choses. Rust améliore vraiment C++ dans un domaine particulier – il est beaucoup plus difficile de contourner les contrôles du compilateur. Et bien sûr, il corrige le problème de l'allocation de mémoire d'une manière presque parfaite. Si vous écriviez la même chose en C++, vous ne pourriez pas être aussi sûr, par rapport à Rust, que vous avez obtenu toute votre allocation de mémoire et votre gestion de la mémoire correctement. Rust est donc un langage intéressant », a-t-il déclaré.
La comparaison entre Rust et C++ reste un sujet d'actualité. Du point de vue technique, les deux langages partagent de nombreuses similitudes dans leur syntaxe. Cependant, Rust et C++ présentent des différences significatives. Pour certains analystes, le C++ possède des bases plus solides en ce qui concerne la communauté et les informations générales sur ses principes. En outre, par rapport au C++, Rust est un nouveau venu dans le monde de la programmation, et de nombreux développeurs hésitent à s'y intéresser. Toutefois, les grands projets de l'industrie ont commencé à l'adopter ces dernières années.
La communauté de Linux a annoncé qu'elle a commencé à développer certaines parties du noyau en Rust. Microsoft a dévoilé l'année dernière son projet Rust for Windows devant permettre aux programmeurs d'accéder facilement aux API Windows lorsqu'ils développent des applications en Rust sur Windows. Facebook, Amazon, Apple, Microsoft et d'autres acteurs majeurs de l'industrie ont tous annoncé dernièrement qu'ils embauchaient des développeurs Rust.
Go et Julia
Go (Golang) est un langage de programmation open source permettant de construire des logiciels simples, rapides et fiables. Classé actuellement parmi les 20 langages les plus populaires de l’index Tiobe, ce langage connaît une forte adoption dans la communauté des développeurs. Et pour cause, ses auteurs lui concèdent une facilité d’apprentissage. En 2018, un sondage a révélé que le nombre de développeurs qui utilisent Go dans le cadre de leurs activités quotidiennes a atteint 50 % (contre 44 % en 2016).
Ces chiffres auraient bien évolué depuis lors. En parlant de Go, Guido a simplement déclaré qu'il s'agit également d'un "excellent" langage de programmation et qu'il est actuellement le langage qui se rapproche le plus de Python. « Je continue à penser que Go est un langage très intéressant aussi. De tous les nouveaux langages, Go est probablement le plus proche de Python – ou du moins des nouveaux langages à usage général », a-t-il déclaré.
Le langage de programmation Julia quant à lui a été conçu, au départ, pour des tâches de programmation scientifique et parallèle. Guido estime qu'il ressemble aussi à Python sous certains angles. « Il y a aussi Julia, qui est une sorte d'approche intéressante de quelque chose qui ressemble à Python. Il a suffisamment de détails qui ressemblent beaucoup à Python pour que vous réalisiez que l'indexation est basée sur un seul élément et que les plages sont inclusives au lieu d'être exclusives. Personne ne devrait jamais essayer de coder en Julia et en Python le même jour », a-t-il expliqué.
Il a ajouté que Julia est réservé à un marché bien défini sur lequel il est supérieur à Python. « Ma compréhension est que Julia est en quelque sorte un langage de niche, et si vous êtes dans cette niche, il est supérieur parce que le compilateur optimise votre code pour vous d'une manière que Python ne pourra probablement jamais faire. D'un autre côté, il est beaucoup plus limité dans d'autres domaines, et je ne m'attends pas à ce que quelqu'un puisse un jour écrire un serveur Web en Julia et en tirer un grand profit. Et je suis sûr que dans cinq minutes ce sera sur Hacker News avec un contre-exemple », estime Guido.
Julia est aujourd'hui beaucoup utilisé en science des données. Toutefois, il reste moins populaire que R et Python, mais prend néanmoins son envol. Ses objectifs sont proches de ceux de R (faciliter le calcul scientifique, notamment statistique), mais avec une excellente performance (là où tant Python et R pêchent).
TypeScript
TypeScript est un langage de programmation libre et open source et un surensemble de JavaScript développé par Microsoft. Il a pour but d'améliorer et de sécuriser la production de code JavaScript. TypeScript inclut un bon ensemble de fonctionnalités de programmation orientée objet (POO), qui sont bonnes pour maintenir un code robuste et propre ; cela améliore la qualité et la maintenabilité du code. Ces caractéristiques rendent le code TypeScript très propre et organisé. TypeScript prend en charge les interfaces, les génériques, l'héritage et les modificateurs d'accès aux méthodes.
Les interfaces sont un moyen de spécifier un contrat. Les génériques aident à fournir une vérification au moment de la compilation, l'héritage permet aux nouveaux objets de prendre les propriétés des objets existants, et les modificateurs d'accès contrôlent l'accessibilité des membres d'une classe. Le créateur de Python estime que tout cela fait de TypeScript un langage "formidable". « TypeScript est un langage formidable. Vous avez peut-être remarqué qu'au cours des six ou sept dernières années, nous avons ajouté le typage statique optionnel à Python, également connu sous le nom de typage progressif », a-t-il déclaré.
« Je n'étais pas vraiment au courant de l'existence de TypeScript lorsque nous avons lancé ce projet, et je ne peux donc pas dire que nous avons été inspirés par le langage au départ. TypeScript, parce qu'il a en quelque sorte pris le train en marche de JavaScript – et parce qu'Anders est un gars très intelligent – TypeScript a fait certaines choses que Python attend toujours de comprendre. Donc, aujourd'hui, nous regardons définitivement TypeScript pour des exemples. Nous avons une SIG destinée au typage où nous discutons des extensions de la syntaxe et de la sémantique du typage et du système de type en général pour Python », a-t-il ajouté.
Guido a continué en disant que JavaScript est plus proche de Python qu'on le pense et que l'équipe de développement de Python s'inspire énormément des améliorations apportées par TypeScript. « Nous proposons parfois de nouvelles fonctionnalités parce que nous savons que certaines fonctionnalités manquaient aussi initialement dans TypeScript, puis ont été ajoutées à TypeScript sur la base de la demande des utilisateurs, et [sont devenues] très populaires dans TypeScript. Et donc maintenant, nous pouvons voir que nous sommes dans la même situation », a-t-il déclaré.
« Parce que JavaScript et Python sont relativement similaires. Beaucoup plus que Python et, disons C++ ou Rust ou Java. Nous apprenons donc de TypeScript, et de temps en temps, d'après mes conversations avec Anders, il semble que TypeScript apprenne également de Python, tout comme JavaScript a appris de Python dans quelques domaines », a conclu Guido. Anders Hejlsberg est un programmeur danois travaillant chez Microsoft et l'un des grands architectes de TypeScript.
Et vous ?
Quel est votre avis sur le sujet ?
Partagez-vous les points de vue de Guido van Rossum ?
Quelle similitude avez-vous constatée entre ces différents langages ?
Voir aussi
Microsoft annonce Rust preview pour Windows, alors que la comparaison entre Rust et C++ reste un sujet d'actualité
Le langage Go continue sa progression avec de nombreux développeurs qui l'utilisent dans les projets professionnels et personnels, selon un sondage
Science des données : Julia, R ou Python ? Un petit aperçu des avantages et inconvénients du langage Julia