Tutvustame Brython 3.10 (Browser Python) projekti väljaannet, mis implementeerib Python 3 programmeerimiskeele veebibrauseri küljel käitamiseks, võimaldades Pythonit kasutada JavaScripti asemel veebiskripti väljatöötamiseks. Projekti kood on kirjutatud Pythonis ja levitatakse BSD litsentsi alusel.
Ühendades brython.js ja brython_stdlib.js teeki, saab veebiarendaja kasutada Pythonit, et määrata veebisaidi kliendi poole loogika, rakendades Pythonit JavaScripti asemel. Python-koodi lehtedele lisamiseks kasutatakse sildi mime-tüüpi 'text/python'. Lubatud on nii koodi manustamine lehele kui ka väliste skriptide laadimine (). Skriptist on täielik juurdepääs DOM-i elementidele ja sündmustele. Peale juurdepääsu Python standardraamatukogule pakuvad spetsialiseeritud raamatukogud DOM-i ja JavaScripti raamatukogudega, nagu jQuery, D3, Highcharts ja Raphael. Toetatakse CSS-raamistike Bootstrap3, LESS ja SASS kasutamist.
Python-koodi täitmine plokkidena <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
Enamikult operatsioonide lõpptõhusus veebilehtede sisesees Python skriptides on sarnane CPythoni tõhususele. Viivitus tekib ainult kompileerimise etapis, kuid selle kõrvaldamiseks on võimalus laadida eelnevalt JavaScripti koodi, mis kiirendab standardteegi laadimist (Brython pakub tööriistu JavaScripti teegide loomiseks põhinedes Python moodulitel).
Uus väljaanne paistab silma Python 3.10 toe tagamisega, sealhulgas mustrite võrdlemise (match/case) operaatorite toetusega. Uues versioonis on samuti ette nähtud algne rakendus abstraktse süntakspuu (AST, Abstract Syntax Tree) jaoks Pythonile, mida saab hiljem kasutada JavaScripti koodi genereerimiseks universaalsest AST-st.
Allikas: opennet.ru
