Veröffentlichung von Brython 3.10, einer Implementierung der Programmiersprache Python für Webbrowser

Die Veröffentlichung des Projekts Brython 3.10 (Browser Python) wurde vorgestellt, welches die Programmiersprache Python 3 für die Ausführung im Webbrowser implementiert und es ermöglicht, Python anstelle von JavaScript zur Entwicklung von Web-Skripten zu nutzen. Der Projektcode ist in Python geschrieben und steht unter der BSD-Lizenz zur Verfügung.

Durch das Einbinden der Bibliotheken brython.js und brython_stdlib.js kann der Webentwickler die Programmiersprache Python verwenden, um die Logik der Website auf der Client-Seite zu definieren und Python anstelle von JavaScript anzuwenden. Zum Einfügen von Python-Code auf Seiten wird das <script>-Tag mit dem MIME-Typ "text/python" verwendet. Sowohl die Einbettung von Code auf der Seite als auch das Laden externer Skripte (<script type="text/python" src="test.py">) sind zulässig. Das Skript hat vollen Zugriff auf die DOM-Elemente und Ereignisse. Neben dem Zugriff auf die Standardbibliothek von Python werden spezielle Bibliotheken für die Interaktion mit DOM und JavaScript-Bibliotheken wie jQuery, D3, Highcharts und Raphael angeboten. Die Verwendung von CSS-Frameworks wie Bootstrap3, LESS und SASS wird unterstützt.

Ausführen von Python-Code aus Blöcken <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).

Die Leistung der meisten Operationen in in Web-Seiten eingebetteten Python-Skripten ist vergleichbar mit der Leistung von CPython. Verzögerungen treten nur in der Kompilierungsphase auf, aber es besteht die Möglichkeit, vorab kompilierte JavaScript-Codes zu laden, die zur Beschleunigung des Ladens der Standardbibliothek verwendet werden (Brython bietet Werkzeuge zum Erstellen von JavaScript-Bibliotheken auf der Grundlage von Python-Modulen).

Die neue Version zeichnet sich durch die Kompatibilität mit Python 3.10 aus, einschließlich der Unterstützung von Operatoren für die Mustererkennung (match/case). In der neuen Version wird auch eine erste Implementierung des abstrakten Syntaxbaums (AST, Abstract Syntax Tree) für die Programmiersprache Python angeboten, der später zur Generierung von JavaScript-Code aus einem universellen AST verwendet werden kann.

Quelle: opennet.ru

60GB SSD 8Gb DDR4