Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

RustPython, un interpréteur Python écrit en Rust et compatible avec WebAssembly, est disponible,
Pourrait-il rivaliser avec CPython ?

Le , par Bill Fassinou

232PARTAGES

13  0 
Un groupe de développeurs a dévoilé sur GitHub un nouvel interpréteur pour le langage Python. Son nom, RustPython. Il s’agit d’un interpréteur entièrement écrit en Rust, d’où l’origine de son nom. Le projet est ouvert à la communauté via GitHub et est publié sous la licence MIT. Vous pouvez le télécharger et le tester ou apporter votre contribution s’il le faut. Rust est un langage de programmation compilé, multi-paradigme conçu et développé par Mozilla Research et sa première version remonte à 2006. Il a été conçu pour être un langage sécurisé, concurrent, pratique et supportant les styles de programmation purement fonctionnel, modèle d’acteur, procédural, ainsi qu’orienté objet sous certains aspects.

Le site officiel de Rust le définit comme étant un langage performant et fiable. Il indique que Rust est extrêmement rapide et utilise peu de mémoire. Il est sans moteur d’exécution, peut alimenter des services critiques en termes de performances et peut s’exécuter sur des périphériques intégrés ou s'intégrer à d’autres langages. Aussi, lit-on sur le site, son système de types et le modèle de propriété de Rust lui garantissent la sécurité de la mémoire et des threads. Cela vous permet d’éliminer de nombreuses classes de bogues au moment de la compilation.


Rust a subi de nombreuses mises à jour et améliorations depuis sa naissance et est à ce jour compatible avec beaucoup d’autres outils pour vous permettre de concevoir des logiciels fiables et efficaces. Il est exécutable en ligne de commande, compatible avec Webassembly et permet de construire des abstractions de haut niveau sans renoncer au contrôle de bas niveau (qui est la façon dont les données sont représentées dans la mémoire ). Le projet RustPython, comme mentionné plus haut, est un interpréteur pour Python 3 totalement écrit en Rust un peu à la manière de CPython (un interpréteur de bytecode écrit en langage C pour Python). RustPython est une implémentation du langage Python 3 et sans compilation, dit l’équipe.

Les autres implémentations actuelles du langage Python 3 sont les suivantes : PyPy 3 (Python implémenté en Python), IronPython 3 (une implémentation de Python dans .NET) et MicroPython (une implémentation de Python en C pour les microcontrôleurs). L’équipe sollicite la communauté à tester RustPython et de les aider à mettre à jour la documentation au fur et à mesure que le projet avance. RustPython est construit pour être compatible avec une multitude d’autres bibliothèques comme WebAssembly (WASM) ou Ouroboros, mais actuellement, il ne dispose que d’un support pour WebAssembly. L’équipe indique que le design suit celui de CPython et le code est d'abord analysé dans un AST (arbre de syntaxe abstrait).

Ensuite, il est compilé en bytecode et ce bytecode est exécuté par une machine virtuelle. La machine virtuelle a accès à plusieurs types de Python intégrés tels que int, tuple, list, set, dict et iter. Pour tester RustPython avec WebAssembly, vous devez installer wasm-pack pour gérer la compatibilité et l’interopérabilité. Une démonstration complète est présentée sur la page GitHub du projet. Cette démonstration est compilée de Rust vers WebAssembly et s'exécute dans le navigateur. Vous pouvez entrer votre propre code Python dans l’espace réservé et cliquer Run pour observer le résultat. L’autre chose, vous pouvez ouvrir les outils de développement de votre navigateur et jouer avec rp.pyEval('print("a"').

« C'est merveilleux ! Cela pourrait devenir le meilleur moyen de déplacer des projets Python vers Rust en l’exécutant tout simplement sur l'interpréteur RustPython ou pour optimiser les routines de bas niveau dans Rust. Dans 15 ans, je ne serais pas surpris si ceci ou quelque chose du genre dépasse la popularité de CPython », a commenté un internaute. Un autre voit RustPython comme la meilleure implémentation de Python avec un autre langage compte tenu de la rapidité qu’on connaît à Rust. Pour lui, en comparaison avec CPython, ce dernier serait vraiment très lent par conception et donc RustPython s’annonce comme une solution prometteuse surtout par le fait qu'il peut-être compilé en WASM.

Source : GitHub

Et vous ?

Avez-vous déjà testé RustPython ? Qu'en pensez-vous ?
Entre CPython et RustPython, lequel préféreriez-vous ? Pourquoi ?

Voir aussi

Éducation : Python bientôt langage officiel de programmation en France ? Un projet dans le cadre de la réforme du Bac et du lycée

Kite, le moteur de complétion de code Python basé sur l'IA analyse maintenant le code en local, mais des développeurs ne sont toujours pas rassurés

Python va supprimer les termes "master/slave" de sa documentation et sa base de code pour des raisons de diversité et leur connotation à l'esclavage

Python est sacré langage de programmation de l'année 2018 par l'index TIOBE, deviendra-t-il le langage le plus utilisé des programmeurs ?

Pourquoi Python gagne-t-il rapidement du terrain ces dernières années ? Partagez vos avis

Une erreur dans cette actualité ? Signalez-le nous !