Le support de la série Python 2 a pris fin le 1er janvier 2020 (à l'exception de certains environnements de support à long terme). Je pense que Python est complètement passé à l'ère Python 3 et entre dans une période stable. Cependant, Python n'est pas seulement CPython. Quel est l'état actuel des autres systèmes de traitement tels que Jython et IronPython? J'étais curieux, alors j'ai fait un peu de recherche.
CPython
Inutile de dire que c'est le système de traitement Python original et le plus célèbre. Il est implémenté en langage C.
La fin du support (EOL) pour la série Python 2 s'est terminée le 1er janvier 2020. La dernière version, 3.8.5, est sortie le 21 juillet 2020. L'autre série 3.7 a publié 3.7.8 et la série 3.6 a publié 3.6.11 le 28 juin. La prochaine version, 3.9.0, est actuellement en version bêta finale (b5), et sortira le 5 octobre après environ deux mois de RC (Release Candidate) (Release Candidate). PEP596). Cliquez ici si vous êtes intéressé par les nouvelles fonctionnalités de 3.9 ⇒ Nouvelles fonctionnalités de Python 3.9 (Résumé)
PyPy
La plupart d'entre eux sont des systèmes de traitement Python implémentés en Pure Python, et se caractérisent par le fait qu'ils fonctionnent souvent plus rapidement que CPython par le compilateur JIT (Just In Time) (pas toujours plus rapide).
La dernière version est la version 7.3.1 publiée le 5 avril 2020. Deux versions, équivalentes à CPython 3.6 et équivalentes à CPython 2.7, ont été publiées. La tendance actuelle est que la branche de développement équivalente à CPython 3.7 a été supprimée et le développement se poursuit, mais la publication est indécise.
Jython
Il s'agit d'un système de traitement Python implémenté en Java et pouvant utiliser des classes telles que JDK.
La version 2.7.0 équivalente à CPython 2.7 a été publiée en mars 2015 et a été mise à jour vers la version 2.7.2 le 21 mars 2020. Cependant, en ce qui concerne la prise en charge de la série de la version 3, bien qu'un référentiel dédié soit disponible, il n'y a pas eu de commits au cours des trois dernières années. Le contributeur clé Jeff Allen a déclaré que le The Very Slow Jython Project indique qu'il est nécessaire de prendre en charge les nouvelles fonctionnalités de Python 3 et d'en concevoir et d'en implémenter de nouvelles en tenant compte de l'ancienne implémentation Jython. (: //the-very-slow-jython-project.readthedocs.io/en/latest/index.html) est en cours de lancement pour tenter de résoudre les problèmes. Comme son nom l'indique, cela est considéré comme une entreprise qui prend du temps.
Graal Python
GraalVM est un système de traitement Python émergent qui s'exécute sur une machine virtuelle Java. Le but est de pouvoir utiliser la syntaxe Python 3.7 et de pouvoir utiliser SciPy et ses bibliothèques associées. Pour le moment, il est spécifié comme «expérimental». Il prend également en compte la Compatibilité avec Jython. La version 20.1.0 pour GraalVM 20 est sortie le 20 mars 2020 et la version 19.3.3 pour GraalVM 19 le 5 août 2020. Cela signifie qu'il implémente la syntaxe équivalente à Python 3.8.2. Il existe également des informations selon lesquelles JIT fonctionne car il fonctionne sur une JVM et est plus rapide que CPython ou Jython. C'est un système de traitement auquel je voudrais m'attendre pour un développement futur.
IronPython
Un système de traitement Python implémenté en C # qui peut utiliser les bibliothèques .NET Framework.
La dernière version est la version 2.7.10 publiée le 27 avril 2020. Il prend en charge des fonctions équivalentes à CPython 2.7. Un référentiel dédié a été créé pour la prise en charge de la série de la version 3, mais il indique clairement qu '"il n'est pas encore prêt à être utilisé". Le problème a une liste de nouvelles fonctionnalités dans Python 3, mais la quantité de travail est si énorme qu'il semble que le chemin de la sortie est encore loin.
Brython
Il s'agit d'un système de traitement Python utilisant Javascript et vous pouvez exécuter du code Python sur le navigateur. La taille de l'interpréteur (brython.js) est d'environ 700 Ko (hors bibliothèque).
La dernière version, la version 3.8.9, est sortie le 20 mars 2020, qui implémente les fonctionnalités équivalentes à 3.8 de CPython ([Seichi Operator](https: // www. In my environment). python.org/dev/peps/pep-0572/) a été confirmé pour fonctionner). On peut dire qu'il s'agit d'un projet de traitement Python vigoureux avec une vitesse de suivi rapide de la famille principale (CPython) et des commits stables.
MicroPython
Une implémentation de sous-ensemble de Python destinée à fonctionner dans un environnement embarqué. On dit que la configuration minimale fonctionne avec 128 Ko de ROM et 8 Ko de RAM, et elle peut être exécutée sur une carte équipée d'ESP32 ou d'un pyboard dédié. Il existe également un portage vers PIC16 et Javascript.
La dernière version est la version 1.12 publiée le 20 décembre 2019. Il s'agit de l'ajout de certaines fonctionnalités de 3.5 (async / await) en plus des fonctionnalités équivalentes à CPython 3.4. Un grand nombre de problèmes ont été soumis concernant la prise en charge de diverses architectures et périphériques, et les activités actives se poursuivent.
Numba
Numba est un compilateur JIT pour accélérer le code Python. En particulier, l'optimisation du code utilisant des tableaux et des fonctions NumPy est envisagée.
La dernière version est la version 0.50.1 publiée le 24 juin 2020. CPython prend en charge 3.6 à 3.8, et NumPy prend en charge 1.15 à 1.18. Il y a plus de 1000 problèmes en suspens, ce qui montre les attentes élevées des personnes pour le projet (et le manque de ressources humaines). En moyenne, environ 4 à 50 commits sont effectués chaque semaine, et on peut dire que c'est un système de traitement très actif.
Cython
Cython est un système de traitement Python inhabituel. Compile le code source d'un langage d'extension propriétaire Cython qui ressemble à la syntaxe Python et génère une bibliothèque pour Python. Cela vous permet de créer des bibliothèques rapides avec moins d'effort. La dernière version du stabilisateur est sortie le 9 juillet 2020, 0.29.21. Et le 31 juillet 2020, la version alpha preview 3.0.0alpha6 de 3.0.0, qui sera la première mise à niveau majeure de la version, a été publiée. Il contient de nombreuses modifications incompatibles vers l'arrière et la syntaxe Python 3 est la valeur par défaut.
RustPython
Il s'agit d'un système de traitement Python implémenté dans Rust qui a démarré en 2018, et il est également possible d'intégrer Python sur l'application Rust, de compiler du code Python dans WebAssembly et de l'exécuter sur le navigateur. La dernière version est la version 0.12 publiée le 22 juin 2020. Actuellement, au moins des fonctions équivalentes à Python 3.5 sont implémentées. Il a été confirmé que la _separation des littéraux numériques tels que f-string et 1_000_000, qui est une fonction 3.6, est implémentée dans mon environnement. La notation {var =} dans 3.8 n'a pas été implémentée. C'est un système de traitement que j'ai hâte de développer à l'avenir.
Nuitka
Nuitka est un compilateur Python qui peut compiler le code source Python pour générer des fichiers exécutables (.exe, etc.) et des fichiers de bibliothèque pour Python (* .pyd, * .so). PyInstaller et py2exe sont célèbres dans ce domaine, mais ce sont leurs adversaires. La lecture du nom semble proche de Nuitika. Le nom vient d'Annuikta, le nom de l'épouse du créateur, Kay Hayen. La dernière version stable est la version 0.6.8.4 publiée le 6 juin 2020. Les versions de Python à compiler sont 2.6-2.7 et 3.3-3.8. Je l'ai juste essayé pendant un moment, mais j'ai pu facilement créer un fichier exécutable pour mon propre programme (y compris du code C ++). J'ai été surpris que la taille soit plus petite que ce à quoi je m'attendais.
Pyodide
(Aucun logo n'a été trouvé)
Un système de traitement Python spécialisé pour la direction scientifique. En utilisant la technologie WebAssembly, vous pouvez utiliser des interpréteurs et des bibliothèques Python tels que NumPy, Pandas, Matplotlib, SciPy, SymPy sur votre navigateur. Il existe une démo de type Jupyter Notebook. La dernière version est la version 0.15.0 publiée le 21 mars 2020. À ce stade, il a la fonction équivalente à CPython 3.7.4. La prochaine version, 0.16, vise la 3.8.2 (la date de sortie est indécise, mais ce n'est pas trop loin des derniers engagements). À propos, le nom vient de Py + Iodide (iodure, pour le dire simplement, la version iodée de l'oxyde). Dénomination pour être lié à Iodide Project.
Si nous trouvons des changements intéressants en 2020, nous les mettrons à jour de temps en temps.
Il existe des différences de vitesse entre les principaux systèmes de traitement, mais il semble que le développement se poursuit pour tous. Le support de Jython pour Python 3 semble être un peu difficile.
Il existe différents systèmes de traitement, mais comme le développement de la famille principale progresse à une vitesse fulgurante, nous pouvons avoir un aperçu de la situation actuelle où d'autres systèmes de traitement consacrent des ressources considérables pour y répondre. En plus de cela, nous devons affiner les caractéristiques uniques du système de traitement, donc je pense que les développeurs sont vraiment reconnaissants.
Si vous connaissez d'autres systèmes de traitement intéressants, veuillez nous le faire savoir dans les commentaires.
Recommended Posts