Brython 3.11 (Browser Python) har släppts, vilket möjliggör implementeringen av programmeringsspråket Python 3 för körning i webbläsaren. Detta gör det möjligt att använda Python istället för JavaScript för utveckling av skript för webben. Projektkoden är skriven i Python och distribueras under BSD-licensen.
Genom att koppla in biblioteken brython.js och brython_stdlib.js kan webbdeveloper använda Python för att definiera logiken för webbplatsen på klientsidan, och använda Python istället för JavaScript. För att inkludera Python-kod på sidor används taggen med MIME-typen "text/python". Både inbäddning av kod på sidan och laddning av externa skript () är tillåtna. Skripten ger full åtkomst till DOM-element och händelser. Förutom tillgången till Pythons standardbibliotek erbjuds specialiserade bibliotek för interaktion med DOM och JavaScript-bibliotek som jQuery, D3, Highcharts och Raphael. Användning av CSS-ramverk som Bootstrap3, LESS och SASS stöds.
Körning av Python-kod från block <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
Den slutliga prestandan för de flesta operationer i inbäddade Python-skript på webbsidor är nära CPythons prestanda. Fördröjning uppstår endast under kompileringen, men det finns möjlighet att ladda förkompilerad JavaScript-kod för att påskynda laddningen av standardbiblioteket (Brython tillhandahåller verktyg för att skapa JavaScript-bibliotek baserade på Python-moduler).
Den nya utgåvan kännetecknas av kompatibilitet med CPython 3.11 och implementeringen av de flesta nya funktionerna i denna version, inklusive stöd för gruppundantag och uttrycket "except*", detaljerade felmeddelanden i diagnostiska meddelanden och möjligheten att bifoga anteckningar till undantag.
Källa: opennet.ru
