Представен е релиз на проекта Brython 3.10 (Browser Python) с реализация на езика за програмиране Python 3, която позволява изпълнението му в уеб браузъра, позволявайки използването на Python вместо JavaScript за разработка на скриптове за уеб. Кодът на проекта е написан на Python и се разпространява под лицензия BSD.
Чрез включване на библиотеките brython.js и brython_stdlib.js, уеб разработчикът може да използва Python за определяне на логиката на работа на сайта от страна на клиента, заменяйки JavaScript. За интегриране на Python код в страниците се използва тагът с MIME тип "text/python". Позволено е както вграждане на код в страницата, така и зареждане на външни скриптове (). От скрипта се осигурява пълен достъп до DOM елементите и събитията. Освен достъпа до стандартната библиотека на Python, се предлагат специализировани библиотеки за взаимодействие с DOM и JavaScript библиотеки, като jQuery, D3, Highcharts и Raphael. Поддържа се използването на CSS фреймуъркове Bootstrap3, LESS и SASS.
Изпълнение на Python код от блокове <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
Крайната производителност на повечето операции в вградени в уеб страниците Python скриптове е близка до производителността на CPython. Забавяне възниква само на етапа на компилация, но за нейното премахване се предлага възможност за зареждане на предварително компилиран JavaScript код, който се прилага за ускорение на зареждането на стандартната библиотека (Brython предоставя инструмент за създаване на JavaScript библиотеки на базата на Python модули).
Новото издание се отличава с осигуряване на съвместимост с Python 3.10, включително поддръжка на операторите за съвпадение на шаблони (match/case). В новата версия също така е предложена начална реализация на абстрактното синтактично дърво (AST, Abstract Syntax Tree) за езика Python, което впоследствие може да бъде използвано за генериране на JavaScript код от универсално AST.
Източник: opennet.ru
