La version du projet Brython 3.11 (Browser Python) a été publiée, mettant en œuvre le langage de programmation Python 3 pour exécution côté navigateur web, permettant d'utiliser Python au lieu de JavaScript pour le développement de scripts pour le Web. Le code du projet est écrit en Python et est distribué sous la licence BSD.
En connectant les bibliothèques brython.js et brython_stdlib.js, les développeurs web peuvent utiliser Python pour définir la logique de fonctionnement du site côté client, remplaçant JavaScript. Pour inclure du code Python dans les pages, on utilise la balise ). Le script a un accès complet aux éléments et événements du DOM. En plus de l'accès à la bibliothèque standard de Python, des bibliothèques spécialisées sont proposées pour interagir avec le DOM et des bibliothèques JavaScript telles que jQuery, D3, Highcharts et Raphael. L'utilisation de frameworks CSS comme Bootstrap3, LESS et SASS est supportée.
Exécution du code Python à partir de blocs <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
La performance finale de la plupart des opérations dans les scripts Python intégrés aux pages web est proche de celle de CPython. Un retard ne se produit qu'à l'étape de compilation, mais pour y remédier, il est possible de charger du code précompilé en JavaScript, ce qui est utilisé pour accélérer le chargement de la bibliothèque standard (Brython fournit des outils pour créer des bibliothèques JavaScript à partir de modules Python).
Cette nouvelle version se distingue par sa compatibilité avec CPython 3.11 et la mise en œuvre de la plupart des nouvelles fonctionnalités de cette branche, y compris le soutien des groupes d'exceptions et l'expression « except* », la précision des expressions problématiques dans les messages de diagnostic et l'ajout de notes aux exceptions.
Source : opennet.ru
