Die Veröffentlichung von Brython 3.11 (Browser Python) wurde vorgestellt, mit der Implementierung der Programmiersprache Python 3 für die Ausführung im Webbrowser, die es ermöglicht, Python anstelle von JavaScript zur Entwicklung von Web-Skripten zu verwenden. Der Code des Projekts ist in Python geschrieben und wird unter der BSD-Lizenz verbreitet.
Durch das Einbinden der Bibliotheken brython.js und brython_stdlib.js kann der Webentwickler die Programmiersprache Python nutzen, um die Logik der Website auf der Clientseite zu definieren, und dafür Python anstelle von JavaScript verwenden. Um Python-Code in die Seiten einzufügen, wird das Tag mit dem MIME-Typ „text/python“ verwendet. Sowohl das Einbetten von Code in die Seite als auch das Laden von externen Skripten () sind zulässig. Aus dem Skript heraus hat man vollen Zugriff auf DOM-Elemente und -Ereignisse. Neben dem Zugriff auf die Standardbibliothek von Python werden spezialisierte 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 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 Gewährleistung der Kompatibilität mit CPython 3.11 aus und implementiert einen Großteil der neuen Funktionen dieser Version, einschließlich der Unterstützung von Ausnahmegruppen und dem Ausdruck "except*", detaillierteren Fehlermeldungen und der Möglichkeit, Anmerkungen an Ausnahmen anzuhängen.
Quelle: opennet.ru
