È stata presentata la versione del progetto Brython 3.10 (Browser Python) che implementa il linguaggio di programmazione Python 3 per l'esecuzione nel browser web, consentendo di utilizzare Python invece di JavaScript per lo sviluppo di script per il Web. Il codice del progetto è scritto in Python e distribuito con licenza BSD.
Collegando le librerie brython.js e brython_stdlib.js, gli sviluppatori web possono utilizzare il linguaggio Python per definire la logica di funzionamento del sito sul lato client, applicando Python invece di JavaScript. Per includere il codice Python nelle pagine si utilizza il tag ). Dallo script è fornito un accesso completo agli elementi e agli eventi del DOM. Oltre all'accesso alla libreria standard di Python, sono disponibili librerie specializzate per interagire con il DOM e le librerie JavaScript, come jQuery, D3, Highcharts e Raphael. È supportato l'uso di framework CSS come Bootstrap3, LESS e SASS.
Esecuzione di codice Python da blocchi <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
Le prestazioni finali della maggior parte delle operazioni negli script Python incorporati nelle pagine web sono simili a quelle di CPython. Il ritardo si verifica solo durante la fase di compilazione, ma per eliminarlo è possibile caricare codice JavaScript già compilato, che viene utilizzato per accelerare il caricamento della libreria standard (Brython offre strumenti per creare librerie JavaScript basate sui moduli Python).
Il nuovo rilascio è notevole per il supporto della compatibilità con Python 3.10, inclusi il supporto per gli operatori di corrispondenza dei modelli (match/case). Nella nuova versione è anche stata proposta una realizzazione iniziale dell'albero sintattico astratto (AST, Abstract Syntax Tree) per il linguaggio Python, che può essere successivamente utilizzato per generare codice JavaScript da un AST universale.
Fonte: opennet.ru
