U lançuar versioni i projektit Brython 3.10 (Python për Shfletues) me implementimin e gjuhës së programimit Python 3 për ekzekutimin në anën e shfletuesit web, e cila lejon përdorimin e Python në vend të JavaScript për zhvillimin e skripteve për Web. Kodi i projektit është shkruar në gjuhën Python dhe shpërndahet nën licencën BSD.
Duke lidhur bibliotekat brython.js dhe brython_stdlib.js, zhvilluesi web mund të përdorë gjuhën Python për të përcaktuar logjikën e funksionimit të faqes në anën e klientit, duke përdorur Python në vend të JavaScript. Për të përfshirë kodin Python në faqet përdoret etiketa me mime-typin "text/python". Lejohet si inkorporimi i kodit në faqen e internetit, ashtu edhe ngarkimi i skripteve të jashtme (). Nga skripti ofrohet qasje e plotë në elementet dhe ngjarjet DOM. Përveç qasjes në bibliotekën standarde të Python, ofrohen biblioteka të specializuara për ndërveprimin me DOM dhe bibliotekat JavaScript, si jQuery, D3, Highcharts dhe Raphael. Mbështetet përdorimi i kornizave CSS Bootstrap3, LESS dhe SASS.
Ekzekutimi i kodit Python nga blloqet <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
Performanca përfundimtare e shumicës së operacioneve në skriptet Python të integruara në faqet e internetit është afër performancës së CPython. Vonesa ndodh vetëm në fazën e kompilimit, por për ta eliminuar, ofrohet mundësia e ngarkimit të kodit të parapërgatitur në JavaScript, e cila përdoret për të përshpejtuar ngarkimin e bibliotekës standarde (Brython ofron mjete për krijimin e bibliotekave JavaScript bazuar në modulet Python).
Lëshimi i ri është i rëndësishëm për sigurimin e pajtueshmërisë me Python 3.10, duke përfshirë mbështetje për operatorët për përputhjen me modelin (match/case). Në versionin e ri gjithashtu është ofruar një implementim fillestar i pemës sintaksore abstrakte (AST, Abstract Syntax Tree) për gjuhën Python, e cila në të ardhmen mund të përdoret për të gjeneruar kod JavaScript nga një AST universale.
Burimi: opennet.ru
