Brython: Python statt JavaScript

Mo, 11. Oktober 2021, Ralf Hersel

Das Projekt Brython in der aktuellen Version 3.10 ist eine Implementierung der Programmiersprache Python 3, die es ermöglicht, Python anstelle von JavaScript zur Entwicklung von Skripten für das Web zu verwenden. Der Projektcode ist in Python geschrieben und wird unter der BSD-Lizenz vertrieben.


Durch die Verbindung der Bibliotheken brython.js und brython_stdlib.js kann ein Webentwickler die Logik der clientseitigen Website mit Python anstelle von JavaScript definieren. Um Python-Code in Seiten einzubinden, verwendet man den <script>-Tag mit dem Mime-Typ "text / python". Sowohl das Einbetten von Code in die Seite als auch das Laden externer Skripte (<script type = "text / python" src = "test.py">) sind erlaubt. Das Skript bietet vollen Zugriff auf DOM-Elemente und Ereignisse. Zusätzlich zum Zugriff auf die Python-Standardbibliothek werden spezielle Bibliotheken für die Interaktion mit dem DOM und JavaScript-Bibliotheken wie jQuery, D3, Highcharts und Raphael angeboten. Die Verwendung der CSS-Frameworks Bootstrap3, LESS und SASS wird unterstützt.

Die Ausführung von Python-Code aus <script>-Blöcken erfolgt durch Vorkompilierung dieses Codes durch die Brython-Engine, nachdem die Seite geladen wurde. Die Kompilierung wird durch den Aufruf der Funktion brython () eingeleitet, zum Beispiel durch Hinzufügen von "<body onload =" brython () ">". Auf der Grundlage des Python-Codes wird eine JavaScript-Darstellung gebildet, die dann von der Standard-JavaScript-Engine des Browsers ausgeführt wird.

Die endgültige Leistung der meisten Operationen in Python-Skripten, die in Webseiten eingebettet sind, liegt nahe an der von CPython. Die Verzögerung tritt nur in der Kompilierungsphase auf. Um sie zu beseitigen, wird die Möglichkeit geboten, vorkompilierten JavaScript-Code zu laden, was dazu dient, das Laden der Standardbibliothek zu beschleunigen (Brython bietet Werkzeuge zur Erstellung von JavaScript-Bibliotheken auf der Grundlage von Python-Modulen).

Die neue Version zeichnet sich durch ihre Kompatibilität mit Python 3.10 aus, einschliesslich der Unterstützung von Operatoren für den Mustervergleich (match / case). Die neue Version bietet auch eine erste Implementierung eines abstrakten Syntaxbaums (AST, Abstract Syntax Tree) für die Sprache Python, der später verwendet werden kann, um JavaScript-Code aus einem universellen AST zu erzeugen.

Auf der Webseite von Brython gibt es sehr viele Codebeispiele.

Quelle: https://brython.info/