Status jedes Python-Verarbeitungssystems im Jahr 2020

Die Unterstützung für die Python 2-Serie endete am 1. Januar 2020 (mit Ausnahme einiger langfristiger Supportumgebungen). Ich denke, Python ist vollständig in die Python 3-Ära übergegangen und tritt in eine stabile Phase ein. Python ist jedoch nicht nur CPython. Wie ist der aktuelle Status anderer Verarbeitungssysteme wie Jython und IronPython? Ich war neugierig und habe ein wenig recherchiert.

CPython

python-logo.png

Offizielle Website Repository

Es ist natürlich das ursprüngliche und bekannteste Python-Verarbeitungssystem. Es ist in C-Sprache implementiert.

Das Ende der Unterstützung (EOL) für die Python 2-Serie wurde am 1. Januar 2020 abgeschlossen. Die neueste Version 3.8.5 wurde am 21. Juli 2020 veröffentlicht. Die anderen 3.7-Serien haben am 28. Juni 3.7.8 und die 3.6-Serie 3.6.11 veröffentlicht. Die nächste Version, 3.9.0, befindet sich derzeit in der endgültigen Beta-Version (b5) und soll am 5. Oktober nach etwa zwei Monaten RC (Release Candidate) (Release Candidate) veröffentlicht werden. PEP596). Klicken Sie hier, wenn Sie an den neuen Funktionen von 3.9 interessiert sind ⇒ Neue Funktionen von Python 3.9 (Zusammenfassung)

PyPy

bitmap.png

Offizielle Website Repository

Die meisten davon sind Python-Verarbeitungssysteme, die in Pure Python implementiert sind, und zeichnen sich dadurch aus, dass sie vom JIT-Compiler (Just In Time) häufig schneller als CPython arbeiten (nicht immer schneller).

Die neueste Version ist die am 5. April 2020 veröffentlichte Version 7.3.1. Es wurden zwei Versionen veröffentlicht, die CPython 3.6 und CPython 2.7 entsprechen. Der aktuelle Trend geht dahin, dass der Entwicklungszweig, der CPython 3.7 entspricht, gekürzt wurde und die Entwicklung fortgesetzt wird, die Veröffentlichung jedoch noch nicht entschieden ist.

Jython

jython.png

Offizielle Website Repository

Es ist ein Python-Verarbeitungssystem, das in Java implementiert ist und Klassen wie JDK verwenden kann.

Die Version 2.7.0, die CPython 2.7 entspricht, wurde im März 2015 veröffentlicht und am 21. März 2020 auf Version 2.7.2 aktualisiert. Obwohl ein dediziertes Repository für die Unterstützung der Serie 3 verfügbar ist, wurden in den letzten drei Jahren keine Commits durchgeführt. Jeff Allen, Hauptverantwortlicher, sagte, dass es laut The Very Slow Jython Project notwendig ist, neue Funktionen von Python 3 zu unterstützen und neue unter Berücksichtigung der alten Jython-Implementierung zu entwerfen und zu implementieren. (: //the-very-slow-jython-project.readthedocs.io/en/latest/index.html) wird gestartet, um zu versuchen, die Probleme zu lösen. Wie der Name schon sagt, wird dies als zeitaufwändiges Unterfangen angesehen.

Graal Python

graal.png

Repository

GraalVM ist ein aufstrebendes Python-Verarbeitungssystem, das auf einer Java-VM ausgeführt wird. Ziel ist es, die Python 3.7-Syntax und SciPy und die zugehörigen Bibliotheken verwenden zu können. Es wird zu diesem Zeitpunkt als "experimentell" angegeben. Es wird auch [Kompatibilität mit Jython] berücksichtigt (https://github.com/graalvm/graalpython/blob/master/docs/user/JYTHON.md). Die Version 20.1.0 für GraalVM 20 wurde am 20. März 2020 und die Version 19.3.3 für GraalVM 19 am 5. August 2020 veröffentlicht. Dies bedeutet, dass die Syntax implementiert wird, die Python 3.8.2 entspricht. Es gibt auch Informationen darüber, dass JIT funktioniert, weil es auf einer JVM ausgeführt wird und [schneller als CPython oder Jython] ist (https://qiita.com/kotauchisunsun/items/7b7eb1e759e3e4526e62). Es ist ein Verarbeitungssystem, das ich für die zukünftige Entwicklung erwarten würde.

IronPython

ironpython.png

Offizielle Seite Repository

Ein in C # implementiertes Python-Verarbeitungssystem, das .NET Framework-Bibliotheken verwenden kann.

Die neueste Version ist die Version 2.7.10, die am 27. April 2020 veröffentlicht wurde. Es unterstützt Funktionen, die CPython 2.7 entsprechen. Für die Unterstützung der Version 3-Serie wurde ein dediziertes Repository erstellt, in dem jedoch eindeutig angegeben ist, dass "es noch nicht einsatzbereit ist". Es gibt eine Liste neuer Funktionen in Python 3 in der Ausgabe, aber der Arbeitsaufwand ist so groß, dass der Weg zur Veröffentlichung noch weit entfernt zu sein scheint.

Brython

brython.png

Offizielle Website Repository

Es ist ein Python-Verarbeitungssystem, das Javascript verwendet, und Sie können Python-Code im Browser ausführen. Die Größe des Interpreters (brython.js) beträgt ca. 700 KB (ohne Bibliothek).

Die neueste Version wurde am 20. März 2020, Version 3.8.9, veröffentlicht, die die Funktionen implementiert, die 3.8 von CPython ([Seichi Operator](https: // www. In meiner Umgebung) entsprechen. python.org/dev/peps/pep-0572/) wurde bestätigt, um zu funktionieren). Es kann gesagt werden, dass es sich um ein intensives Python-Verarbeitungsprojekt mit schneller Nachverfolgungsgeschwindigkeit für die Head-Familie (CPython) und stabilen Commits handelt.

MicroPython

micropython.png

Offizielle Website Repository

Eine Teilmengenimplementierung von Python, die in einer eingebetteten Umgebung funktionieren soll. Die Mindestkonfiguration soll mit 128 KB ROM und 8 KB RAM funktionieren und kann auf einer mit ESP32 oder einem dedizierten Pyboard ausgestatteten Karte ausgeführt werden. Es gibt auch einen Port für PIC16 und Javascript.

Die neueste Version ist die Version 1.12, die am 20. Dezember 2019 veröffentlicht wurde. Dies ist die Hinzufügung einiger Funktionen von 3.5 (async / await) zusätzlich zu den Funktionen, die CPython 3.4 entsprechen. Es wurde eine Vielzahl von Fragen zur Unterstützung verschiedener Architekturen und Peripheriegeräte eingereicht, und die aktiven Aktivitäten werden fortgesetzt.

Numba

bitmap.png

Offizielle Website Repository

Numba ist ein JIT-Compiler zur Beschleunigung von Python-Code. Insbesondere wird die Optimierung für Code unter Verwendung von NumPy-Arrays und -Funktionen berücksichtigt.

Die neueste Version ist die am 24. Juni 2020 veröffentlichte Version 0.50.1. CPython unterstützt 3.6 bis 3.8 und NumPy unterstützt 1.15 bis 1.18. Es gibt mehr als 1000 offene Fragen, was die hohen Erwartungen der Menschen an das Projekt (und den Mangel an Humanressourcen) zeigt. Im Durchschnitt werden pro Woche etwa 4 bis 50 Commits durchgeführt, und es kann gesagt werden, dass es sich um ein sehr aktives Verarbeitungssystem handelt.

Cython

cython.png

Offizielle Seite Repository

Cython ist ein ungewöhnliches Python-Verarbeitungssystem. Kompiliert den Quellcode Ihrer eigenen Cython-Erweiterungssprache, die der Python-Syntax ähnelt, und generiert eine Bibliothek für Python. Auf diese Weise können Sie mit weniger Aufwand schnelle Bibliotheken erstellen. Die neueste Version des Stabilisators wurde am 9. Juli 2020, 0.29.21, veröffentlicht. Und am 31. Juli 2020 wurde die Alpha-Vorschau-Version 3.0.0alpha6 von 3.0.0 veröffentlicht, die das erste größere Versions-Upgrade sein wird. Es enthält viele abwärtskompatible Änderungen und die Python 3-Syntax ist die Standardeinstellung.

RustPython

rustpython.png

Offizielle Website Repository

Es ist ein in Rust implementiertes Python-Verarbeitungssystem, das 2018 gestartet wurde. Es ist auch möglich, Python in die Rust-Anwendung einzubetten, Python-Code in WebAssembly zu kompilieren und im Browser auszuführen. Die neueste Version ist Version 0.12, die am 22. Juni 2020 veröffentlicht wurde. Derzeit sind mindestens Python 3.5-äquivalente Funktionen implementiert. Es wurde bestätigt, dass die _Trennung von numerischen Literalen wie f-string und 1_000_000, die eine 3.6-Funktion ist, in meiner Umgebung implementiert ist. Die Notation {var =} in 3.8 wurde nicht implementiert. Es ist ein Verarbeitungssystem, auf dessen Entwicklung ich mich in Zukunft freue.

Nuitka

nuitka.png

Offizielle Seite Repository

Nuitka ist ein Python-Compiler, der Python-Quellcode kompilieren kann, um ausführbare Dateien (.exe usw.) und Bibliotheksdateien für Python (* .pyd, * .so) zu generieren. PyInstaller und py2exe sind in diesem Bereich berühmt, aber sie sind die Gegner. Das Lesen des Namens scheint Nuitika nahe zu sein. Der Name wurde von Annuikta übernommen, dem Namen der Frau des Schöpfers Kay Hayen. Die neueste stabile Version ist die am 6. Juni 2020 veröffentlichte Version 0.6.8.4. Die zu kompilierenden Python-Versionen sind 2.6-2.7 und 3.3-3.8. Ich habe es nur eine Weile versucht, konnte aber problemlos eine ausführbare Datei für mein eigenes Programm (einschließlich C ++ - Code) erstellen. Ich war überrascht, dass die Größe kleiner war als ich erwartet hatte.

Pyodide

(Es wurde kein Logo gefunden)

Repository

Ein Python-Verarbeitungssystem, das auf die wissenschaftliche Leitung spezialisiert ist. Mithilfe der WebAssembly-Technologie können Sie Python-Interpreter und -Bibliotheken wie NumPy, Pandas, Matplotlib, SciPy und SymPy in Ihrem Browser verwenden. Es gibt eine Jupyter Notebook-ähnliche Demo. Die neueste Version ist die Version 0.15.0, die am 21. März 2020 veröffentlicht wurde. Zu diesem Zeitpunkt hat es die Funktion, die CPython 3.7.4 entspricht. Die nächste Version, 0.16, zielt auf 3.8.2 ab (das Veröffentlichungsdatum ist noch nicht festgelegt, aber es ist nicht zu weit von den neuesten Verpflichtungen entfernt). Der Name stammt übrigens von Py + Iodide (Iodid, um es einfach auszudrücken, die Iodversion des Oxids). Benennung für die Beziehung zu Iodide Project.

Änderungsprotokoll

Wenn wir im Jahr 2020 interessante Änderungen feststellen, werden wir diese von Zeit zu Zeit aktualisieren.

abschließend

Es gibt Unterschiede in der Geschwindigkeit der wichtigsten Verarbeitungssysteme, aber es scheint, dass die Entwicklung für alle fortgesetzt wird. Jythons Unterstützung für Python 3 scheint etwas schwierig zu sein.

Es gibt verschiedene Verarbeitungssysteme, aber da die Entwicklung der Kopffamilie mit enormer Geschwindigkeit voranschreitet, können wir einen Blick auf die aktuelle Situation werfen, in der andere Verarbeitungssysteme beträchtliche Ressourcen einsetzen, um darauf zu reagieren. Darüber hinaus müssen wir die einzigartigen Eigenschaften des Verarbeitungssystems verfeinern, sodass ich der Meinung bin, dass die Entwickler wirklich dankbar sind.

Wenn Sie andere interessante Verarbeitungssysteme kennen, teilen Sie uns dies bitte in den Kommentaren mit.

Recommended Posts

Status jedes Python-Verarbeitungssystems im Jahr 2020
Dateiverarbeitung in Python
Multithread-Verarbeitung in Python
Verarbeitung in Python beenden
Verschiedene Verarbeitung von Python
Passen Sie die Verteilung jeder Gruppe in Python an
Zeigen Sie das Ergebnis der Geometrieverarbeitung in Python an
UTF8-Textverarbeitung mit Python
Verarbeitung von CSV-Daten in voller und halber Breite in Python
Asynchrone Verarbeitung (Threading) in Python
Objektäquivalenzbeurteilung in Python
Python: Deep Learning in der Verarbeitung natürlicher Sprache: Implementierung eines Antwortsatzauswahlsystems
Nachbearbeitung von Python (NG)
Bildverarbeitungssammlung in Python
Implementierung der schnellen Sortierung in Python
Verwenden des Python-Modus in der Verarbeitung
Überprüfen Sie die Verarbeitungszeit und die Anzahl der Aufrufe für jeden Prozess mit Python (cProfile).
Überprüfen Sie die Funktionsweise von Python für .NET in jeder Umgebung
Erstellen Sie eine Multiplikationstabelle für jedes Element in einer Tabelle (Python).
Python3-Verarbeitung, die in Paiza verwendbar zu sein scheint
Ruft den Index jedes Elements der Verwirrungsmatrix in Python ab
Bildpixel-Manipulation in Python
100 Sprachverarbeitung Knock Kapitel 1 in Python
Zeitdelta in Python 2.7-Serie teilen
Umgang mit JSON-Dateien in Python
Implementierung eines Lebensspiels in Python
Audio-Wellenform-Anzeige in Python
Grundlegende Grammatik des Python3-Systems (Wörterbuch)
Das Gesetz der Zahlen in Python
Implementierung der ursprünglichen Sortierung in Python
Reversibles Verwürfeln von Ganzzahlen in Python
Eine Funktion, die die Verarbeitungszeit einer Methode in Python misst
Grundlagen der binärisierten Bildverarbeitung durch Python
Konvertierung der Zeichenfolge <-> Datum (Datum, Datum / Uhrzeit) in Python
Überprüfen Sie das Verhalten des Zerstörers in Python
Übung, dies in Python zu verwenden (schlecht)
Allgemeine Relativitätstheorie in Python: Einführung
Ausgabebaumstruktur von Dateien in Python
Zeigen Sie eine Liste der Alphabete in Python 3 an
Vergleich japanischer Konvertierungsmodule in Python3
Graustufen durch Matrix-Reinventor der Python-Bildverarbeitung-
Das Ergebnis der Installation von Python auf Anaconda
Gang of Four (GoF) -Muster in Python
Grundlagen zum Ausführen von NoxPlayer in Python
Grundlegende Grammatik der Python3-Reihe (Zeichenkette)
Massenersatz von Zeichenfolgen in Python-Arrays
Projekt Euler # 16 "Summe der Kräfte" in Python
Zeichnen mit Matrix-Reinventor von Python Image Processing-
Verarbeiten Sie Bilder in Python ganz einfach mit Pillow
Zusammenfassung der integrierten Methoden usw. der Python-Liste
Nicht logische Operatorverwendung von oder in Python
Die Geschichte der Verarbeitung A von Blackjack (Python)
Hinweis auf Probleme hinsichtlich der Koexistenz des Python 2/3-Systems
Praktisches Beispiel für hexagonale Architektur in Python
Grundlegende Grammatik des Python3-Systems (inklusive Notation)
Doppelte Verbotsverarbeitung im GAE / Python-Datenspeicher
Projekt Euler # 17 "Anzahl der Zeichen" in Python
Doppelte Pendelbewegungsgleichung in Python
Entfernen Sie DICOM-Bilder in Python
Faltungsfilterung durch Matrix-Reinventor der Python-Bildverarbeitung-