Wydano wersję projektu Brython 3.11 (Browser Python) z implementacją języka programowania Python 3 do uruchamiania w przeglądarkach internetowych, co pozwala na używanie Pythona zamiast JavaScript do tworzenia skryptów dla Web. Kod projektu jest napisany w języku Python i dystrybuowany na licencji BSD.
Po dodaniu bibliotek brython.js i brython_stdlib.js, web-deweloper może używać języka Python do definiowania logiki działania witryny po stronie klienta, stosując Pythona zamiast JavaScript. Aby włączyć kod Pythona na stronach, używa się tagu z typem MIME „text/python”. Dozwolone jest zarówno wbudowanie kodu na stronę, jak i ładowanie zewnętrznych skryptów (). Skrypt ma pełen dostęp do elementów i zdarzeń DOM. Oprócz dostępu do standardowej biblioteki Pythona oferowane są specjalistyczne biblioteki do interakcji z DOM oraz bibliotekami JavaScript, takimi jak jQuery, D3, Highcharts i Raphael. Wspierane jest korzystanie z frameworków CSS Bootstrap3, LESS i SASS.
Wykonywanie kodu Python z bloków <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
Końcowa wydajność większości operacji wbudowanych w web-strony skryptów Pythona jest zbliżona do wydajności CPython. Opóźnienie występuje jedynie na etapie kompilacji, ale w celu jego eliminacji udostępniono możliwość ładowania wcześniej skompilowanego kodu w JavaScript, co przyspiesza ładowanie standardowej biblioteki (Brython dostarcza narzędzia do tworzenia bibliotek JavaScript na podstawie modułów Pythona).
Nowa wersja jest godna uwagi dzięki zapewnieniu zgodności z CPython 3.11 oraz wdrożeniu większości nowych funkcji tej gałęzi, w tym wsparcia dla grup wyjątków oraz wyrażenia „except*”, szczegółowego opisywania problematycznych wyrażeń w komunikatach diagnostycznych oraz dołączania uwag do wyjątków.
Źródło: opennet.ru
