Rust, Python, TypeScript : la nouvelle trifecta de la programmation
(smallcultfollowing.com)- Rust, Python et TypeScript devraient s’imposer comme les langages centraux du développement logiciel à l’avenir
- Avec la généralisation des outils de codage IA, la fidélité des développeurs à un langage s’affaiblit, et les langages pratiques dotés d’un solide écosystème sont de plus en plus privilégiés
- Le paradigme de la programmation orientée idée (idea-oriented programming) émerge : les développeurs se concentrent sur la conception et la revue, tandis que l’implémentation est confiée à l’IA
- Ces trois langages disposent à la fois de systèmes de types avancés et de puissants écosystèmes de gestionnaires de paquets, ce qui les rend favorables à l’usage de l’IA, à la collaboration et à la prévention des erreurs
- La qualité des messages d’erreur, l’écosystème et l’intégration aux plateformes deviennent elles aussi des critères de plus en plus importants
Pourquoi Rust, Python et TypeScript montent en puissance
- Rust excelle dans le logiciel système, les domaines exigeant de hautes performances, ainsi que la sûreté des types et l’efficacité mémoire
- Python est idéal pour l’expérimentation, le prototypage et l’exploitation de bibliothèques mathématiques et scientifiques, ce qui permet de valider rapidement des idées
- TypeScript s’applique immédiatement au web, au navigateur et à diverses plateformes, et gagne en extensibilité grâce à son puissant système de types et à l’écosystème npm
Le paradigme de développement transformé par l’IA : la programmation orientée idée
- Avec la généralisation des outils de codage IA (Large Language Model), la programmation évolue vers un schéma « conception de l’idée → implémentation par l’IA → conception/revue par l’humain »
- Le vibe coding se rapproche d’instructions improvisées et floues, tandis que l’idea-oriented programming met l’accent sur la conception, la structure et des principes durables
- Le développeur définit les orientations et la conception principales, tandis que l’IA prend en charge les tâches répétitives et d’implémentation ; une relation comparable à celle d’un architecte et d’un apprenti
L’évolution des critères de choix d’un langage
- Autrefois, on travaillait rapidement dans le langage que l’on maîtrisait le mieux (par ex. Rust), mais avec l’IA, les bibliothèques disponibles, les performances et l’intégration aux plateformes deviennent plus importantes
- Selon le projet, on choisit le langage le plus adapté à la situation : Python (machine learning), TypeScript (web, extension VSCode), Rust (choix par défaut)
L’importance croissante des systèmes de types
- Dans un environnement de développement assisté par l’IA, les systèmes de types avancés prennent encore plus d’importance
- Rust et TypeScript imposent au niveau du code la validité des états et des données, ainsi que la prévention des erreurs, ce qui réduit aussi la probabilité d’erreurs de l’IA
- Python peut également renforcer sa sûreté de typage via des outils comme mypy ou pydantic
La montée en valeur des écosystèmes et des gestionnaires de paquets
- Développer avec l’IA facilite l’usage de grandes bibliothèques, si bien que la taille de l’écosystème et la qualité du gestionnaire de paquets deviennent encore plus importantes
- Rust (
cargo), TypeScript (npm) et Python (uv, etc.) disposent tous de gestionnaires de paquets modernes
La petite syntaxe et les contournements comptent moins, mais la qualité des messages d’erreur et de la documentation reste essentielle
- Les LLM (IA) corrigent rapidement les erreurs de syntaxe répétitives, mais des messages d’erreur et des guides clairs restent nécessaires pour permettre une correction efficace
- Comme les efforts de la communauté Rust en matière d’ergonomie du langage, l’IA exploite elle aussi de bons messages d’erreur pour produire un meilleur code
Conclusion : les LLM ouvrent à tous l’accès à de puissants outils de développement
- À l’ère de la programmation orientée idée, même un junior peut acquérir une expérience de conception et de pilotage proche de celle d’un Principal Engineer
- Certains s’inquiètent d’une réduction du « flow » propre au codage, mais une expérience de développement centrée sur la conception et les idées devrait gagner en valeur
► À l’ère du travail avec l’IA, Rust, Python et TypeScript s’imposent comme des standards du développement grâce à leurs types robustes, à leur écosystème et à leur support des plateformes
14 commentaires
Parmi les trois, celui qui m’est familier, c’est TS, celui que je sais utiliser, c’est Python, et celui que je ne connais pas bien mais que j’ai envie de faire, c’est Rust...
Quoi qu’il en soit, le plus rassurant dans tout ça, c’est que Java ne fasse pas partie de ces trois-là
Dans l’évolution de l’expérience, de codeur => développeur qui conçoit l’architecture fonctionnelle => architectures plus vastes (système, réseau, sécurité) => planification,
on a l’impression qu’il y aura moins d’occasions pour les codeurs d’apprendre sur le terrain.
Si la programmation centrée sur les idées devient la norme,
j’ai le sentiment qu’au minimum, savoir gérer seul une stack full-stack basée sur l’IA deviendra la base pour un codeur, etc.
Je ne trouve toujours pas de raison suffisante pour passer de C à Rust pour du code haute performance. Quelque chose comme Zig, avec une syntaxe au moins un peu plus simple, me semble mieux adapté au développement de bout en bout, et pour le reste, de toute façon, l’architecture consiste à profiler puis à n’implémenter que les parties appelées depuis un langage de haut niveau (en tant qu’utilisateur de Python). Avec Rust, les coûts de développement liés à l’interaction avec d’autres langages, comme le contrôle du GIL, sont étonnamment assez élevés. C, à la base, est justement ce que les autres langages attendent.
S'il faut utiliser Zig, autant utiliser C haha...
Je soutiens Zig :)
Si l’on passe de C à Rust, je dirais en réalité que la raison est la productivité. Le support de la sûreté mémoire est appréciable, mais rien qu’en considérant
cargo, je pense que c’est déjà une raison suffisante pour franchir le pas.Quand on crée un module d’extension Python, la gestion du GIL est toujours délicate, quel que soit le langage. C’est pareil en C/C++ ; bien sûr, il y a des exceptions quand on utilise des bibliothèques ou des outils qui aident à écrire des modules d’extension, et Rust dispose lui aussi d’un excellent crate appelé PyO3.
Par ailleurs, du point de vue d’un développeur C, il est naturel que Zig soit facile à manier. Fondamentalement, Zig est aussi un compilateur C, au point qu’on peut simplement importer et utiliser directement des fichiers d’en-tête.
On peut aussi le voir comme ça. D’après mon expérience, par rapport à PyO3,
python.h— ce qui explique aussi pourquoi zig peut être une bonne alternative — permettait beaucoup plus facilement de descendre au niveau de l’OS ou de la vectorisation puis d’en remonter ; en revanche, du point de vue de l’absence de souci de gestion mémoire, au-delà d’une certaine échelle Rust peut offrir une meilleure productivité à long terme.Si le C est facile, c’est parce qu’il constitue la base des grands langages modernes — Python/TS/Go/PHP/Java — ou qu’il en partage une syntaxe proche ; autrement dit, ce n’est pas seulement que sa syntaxe est simple, mais aussi que c’est une langue que l’on finira par rencontrer, ou que l’on a déjà rencontrée un jour. À l’inverse, Rust se situe à l’opposé, si bien que malgré sa grande valeur, son adoption dans une équipe demande des efforts considérables. Je pense que c’est parce que c’est moins un langage évolutif qu’un langage innovant.
On dirait que c’est un article écrit par la personne qui a créé la crate rayon de Rust.
Python et TypeScript semblent bien être encore aujourd’hui des langages centraux, mais...
Rust n’occupe pas encore vraiment cette place. Je me dis que c’est peut-être à cause de sa réputation de difficulté.
J’espère que les LLM feront baisser la barrière à l’entrée et permettront aussi à Rust d’émerger comme un langage central.
Niko Matsakis occupe une position qui fait de lui, au-delà de
rayon, une figure presque paternelle de Rust. Bien sûr, Graydon Hoare en est le fondateur, mais on peut dire que c’est Niko qui a le plus contribué aux parties les plus importantes du langage.En tant que développeur Rust, vous avez naturellement plus d’affection pour ce langage, donc l’information est peut-être un peu biaisée !
Merci de partager ces informations.
PHP déchire.
Mais chez nous, c’est Java, non ?
On dirait que Go a été écarté à cause du GC.
Les trois grands, carrément incroyable