Se presenta el lanzamiento del proyecto Brython 3.11 (Python para Navegadores) con la implementación del lenguaje de programación Python 3 para su ejecución en el lado del navegador web, permitiendo usar Python en lugar de JavaScript para desarrollar scripts para la web. El código del proyecto está escrito en Python y se distribuye bajo la licencia BSD.
Al conectar las bibliotecas brython.js y brython_stdlib.js, el desarrollador web puede utilizar el lenguaje Python para definir la lógica del sitio en el lado del cliente, aplicando Python en lugar de JavaScript. Para incluir código de Python en las páginas, se utiliza la etiqueta con el tipo MIME «text/python». Se permite tanto la inclusión de código directamente en la página como la carga de scripts externos (). Desde el script, se tiene acceso total a los elementos y eventos del DOM. Además del acceso a la biblioteca estándar de Python, se ofrecen bibliotecas especializadas para interactuar con el DOM y bibliotecas de JavaScript, como jQuery, D3, Highcharts y Raphael. Se admite el uso de frameworks CSS como Bootstrap3, LESS y SASS.
Ejecución de código Python desde bloques <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
El rendimiento final de la mayoría de las operaciones en los scripts de Python integrados en las páginas web es similar al rendimiento de CPython. La latencia solo se produce en la etapa de compilación, pero para solucionarlo se ofrece la posibilidad de cargar código previamente compilado a JavaScript, que se aplica para acelerar la carga de la biblioteca estándar (Brython proporciona herramientas para crear bibliotecas de JavaScript basadas en módulos de Python).
La nueva versión es notable por garantizar la compatibilidad con CPython 3.11 y por implementar la mayor parte de las nuevas características de esta rama, incluida la compatibilidad con grupos de excepciones y la expresión 'except*', la especificación de expresiones problemáticas en mensajes de diagnóstico y el adjunto de notas a las excepciones.
Fuente: opennet.ru
