Die Veröffentlichung des Projekts Brython 3.10 (Browser Python) ermöglicht die Ausführung der Programmiersprache Python 3 im Webbrowser, wodurch Python anstelle von JavaScript für die Skripterstellung im Web verwendet werden kann. Der Projektcode ist in Python geschrieben und wird unter der BSD-Lizenz verbreitet.
Durch das Hinzufügen der Bibliotheken brython.js und brython_stdlib.js kann der Webentwickler Python verwenden, um die Logik der Website auf der Client-Seite zu definieren und dabei Python anstelle von JavaScript zu verwenden. Um Python-Code auf Seiten einzufügen, wird das -Tag mit dem Mime-Typ „text/python“ verwendet. Sowohl das Einbetten von Code auf der Seite als auch das Laden externer Skripte () sind zulässig. Das Skript erhält vollen Zugriff auf die DOM-Elemente und -Ereignisse. Neben dem Zugriff auf die Standardbibliothek von Python werden spezialisierte Bibliotheken für die Interaktion mit dem 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 endgültige Leistung der meisten Operationen in in Web-Seiten eingebetteten Python-Skripten entspricht nahezu der Leistung von CPython. Die Verzögerung tritt nur während des Kompilierungsprozesses auf, aber um diese zu beseitigen, besteht die Möglichkeit, vorab kompilierten JavaScript-Code zu laden, was dazu dient, die Ladezeit der Standardbibliothek zu beschleunigen (Brython stellt ein Werkzeugset zur Verfügung, um JavaScript-Bibliotheken aus Python-Modulen zu erstellen).
Die neue Version zeichnet sich durch die Kompatibilität mit Python 3.10 aus, einschließlich der Unterstützung von Match-Case-Operatoren. In dieser Version wird zudem eine erste Implementierung eines abstrakten Syntaxbaums (AST, Abstract Syntax Tree) für die Programmiersprache Python vorgestellt, der anschließend zur Generierung von JavaScript-Code aus einem universellen AST verwendet werden kann.
Quelle: opennet.ru
