Выпуск Brython 3.10, реализации языка Python для web-браузеров

Представлен релиз проекта Brython 3.10 (Browser Python) с реализацией языка программирования Python 3 для выполнения на стороне web-браузера, позволяющей использовать Python вместо JavaScript для разработки скриптов для Web. Код проекта написан на языке Python и распространяется под лицензией BSD.

Подключив библиотеки brython.js и brython_stdlib.js, web-разработчик может использовать язык Python для определения логики работы сайта на стороне клиента, применяя Python вместо JavaScript. Для включения Python-кода на страницы используется тег <script> с mime-типом "text/python".

Допускается как встраивание кода на страницу, так и загрузка внешних скриптов (<script type="text/python" src="test.py">). Из скрипта предоставляется полный доступ к элементам и событиям DOM. Помимо доступа к стандартной библиотеке Python предлагаются специализированные библиотеки для взаимодействия с DOM и JavaScript-библиотеками, такими как jQuery, D3, Highcharts и Raphael.

Поддерживается использование CSS-фреймворков Bootstrap3, LESS и SASS.
Выполнение Python-кода из блоков <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление "<body onload="brython()">". На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript)
.
Итоговая производительность большинства операций во встраиваемых в web-страницы Python-сценариях близка к производительности CPython. Задержка возникает только на этапе компиляции, но для её устранения предоставляется возможность загрузки предварительно скомпилированного в JavaScript кода, которая применяется для ускорения загрузки стандартной библиотеки (Brython предоставляет инструментарий для создания JavaScript-библиотек на основе модулей Python)


Новый выпуск примечателен обеспечением совместимости с Python 3.10, включая поддержку операторов для сопоставления с образцом (match/case). В новой версии также предложена начальная реализация абстрактного синтаксического дерева (AST, Abstract Syntax Tree) для языка Python, которое в последующем может быть использовано для генерации кода JavaScript из универсального AST.

Opennet[/TD]
 
Последнее редактирование модератором:
Назад
Сверху Снизу