È stato rilasciato il progetto Brython 3.11 (Browser Python) con l'implementazione del linguaggio di programmazione Python 3 per l'esecuzione nel web browser, consentendo di utilizzare Python al posto 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 operativa del sito lato client, impiegando Python anziché JavaScript. Per includere il codice Python nelle pagine, si utilizza il tag con il tipo mime «text/python». È possibile sia l'inserimento di codice nella pagina che il caricamento di script esterni (). Dallo script si ha 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 del 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 nei script Python integrati nelle pagine web sono simili a quelle di CPython. I ritardi si verificano solo durante la fase di compilazione, ma è possibile caricare codice precompilato in JavaScript, che viene utilizzato per accelerare il caricamento della libreria standard (Brython fornisce gli strumenti per creare librerie JavaScript basate su moduli Python).
Il nuovo rilascio è degno di nota per la compatibilità con CPython 3.11 e l'implementazione della maggior parte delle nuove funzionalità di questa versione, inclusa la supporto per i gruppi di eccezioni ed espressioni «except*», la dettaglio delle espressioni problematiche nei messaggi diagnostici e l'allegazione di annotazioni alle eccezioni.
Fonte: opennet.ru
