Predstavljen je izdaj projekta Brython 3.10 (Browser Python) z implementacijo programskega jezika Python 3 za izvajanje na strani spletnega brskalnika, kar omogoča uporabo Pythona namesto JavaScripta za razvoj skript za splet. Koda projekta je napisana v programskem jeziku Python in se distribuira pod licenco BSD.
Z vključitvijo knjižnic brython.js in brython_stdlib.js lahko spletni razvijalec uporablja programski jezik Python za določitev logike delovanja spletne strani na strani odjemalca, pri čemer uporablja Python namesto JavaScripta. Za vključitev Python kode na strani se uporablja oznaka z mime-tipom „text/python“. Dovoli se tako vnašanje kode na stran, kot tudi nalaganje zunanjih skriptov (). Iz skripta je omogočen popoln dostop do elementov in dogodkov DOM. Poleg dostopa do standardne knjižnice Pythona so na voljo specializirane knjižnice za interakcijo z DOM-om in JavaScript knjižnicami, kot so jQuery, D3, Highcharts in Raphael. Podprto je tudi uporabo CSS okvirjev Bootstrap3, LESS in SASS.
Izvršavanje Python koda iz blokova <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
Končna zmogljivost večine operacij v vdelanih Python skriptah za spletne strani je blizu zmogljivosti CPython. Zamuda nastane le v fazi kompilacije, za njeno odpravo pa je na voljo možnost nalaganja vnaprej kompajliranega JavaScript kode, kar se uporablja za pospešitev nalaganja standardne knjižnice (Brython nudi orodja za ustvarjanje JavaScript knjižnic na osnovi Python modulov).
Nova izdaja je opazna po zagotavljanju združljivosti s Python 3.10, vključno s podporo za operatorje za ujemanje s predlogo (match/case). V novi različici je prav tako predlagana začetna implementacija abstraktnega sintaktičnega drevesa (AST, Abstract Syntax Tree) za programski jezik Python, ki se lahko kasneje uporabi za generiranje JavaScript kode iz univerzalnega AST.
Izvor: opennet.ru
