Tika prezentācija par Brython 3.10 (Browser Python) projektu, kas nodrošina programmēšanas valodu Python 3 izpildei tīmekļa pārlūkā, ļaujot izmantot Python kā alternatīvu JavaScript skriptu izstrādē tīmeklim. Projekta kods ir uzrakstīts Python valodā un tiek izplatīts saskaņā ar BSD licenci.
Pievienojot bibliotēkas brython.js un brython_stdlib.js, tīmekļa izstrādātājs var izmantot Python valodu, lai definētu vietnes loģiku klienta pusē, aizstājot JavaScript. Lai iekļautu Python kodu lapās, tiek izmantots tags ar mime tipu 'text/python'. Ir atļauta gan koda iekļaušana lapā, gan ārējo skriptu ielāde (). Skripts nodrošina pilnu piekļuvi DOM elementiem un notikumiem. Papildus piekļuvei standarta Python bibliotēkai ir pieejamas specializētas bibliotēkas mijiedarbībai ar DOM un JavaScript bibliotēkām, piemēram, jQuery, D3, Highcharts un Raphael. Atbalsts CSS ietvariem Bootstrap3, LESS un SASS.
Python koda izpilde no blokiem <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
Galīgā veiktspēja lielākajai daļai operāciju Python skriptu, kas ir iekļauti web lapās, ir tuva CPython veiktspējai. Aizkave rodas tikai kompilācijas posmā, taču šī problēma tiek novērsta ar iespēju ielādēt iepriekš kompilētu JavaScript kodu, kas tiek izmantots standarta bibliotēkas ielādes paātrināšanai (Brython nodrošina rīkus JavaScript bibliotēku veidošanai, pamatojoties uz Python moduļiem).
Jaunais izlaidums ir ievērojams ar saderību ar Python 3.10, ieskaitot operatoru atbalstu saskaņošanai (match/case). Jaunajā versijā ir piedāvāta sākotnējā abstraktā sintakses koka (AST, Abstract Syntax Tree) īstenošana Python valodā, kas vēlāk var tikt izmantota, lai ģenerētu JavaScript kodu no universālā AST.
Avots: opennet.lv
