A fost lansată versiunea proiectului Brython 3.11 (Browser Python) cu implementarea limbajului de programare Python 3 pentru a fi executat în partea de client a browserului web, permițând utilizarea Python în loc de JavaScript pentru dezvoltarea de scripturi pentru web. Codul proiectului este scris în limbajul Python și este distribuit sub licența BSD.
Prin conectarea bibliotecilor brython.js și brython_stdlib.js, dezvoltatorul web poate utiliza limbajul Python pentru a defini logica de funcționare a site-ului pe partea clientului, aplicând Python în loc de JavaScript. Pentru a include codul Python pe pagini, se folosește eticheta cu tipul MIME „text/python”. Se permite atât încorporarea codului pe pagină, cât și încărcarea scripturilor externe (). Scriptul oferă acces complet la elementele și evenimentele DOM. În plus față de accesul la biblioteca standard Python, sunt oferite biblioteci specializate pentru interacțiunea cu DOM-ul și bibliotecile JavaScript, cum ar fi jQuery, D3, Highcharts și Raphael. Se susține utilizarea cadrelor CSS Bootstrap3, LESS și SASS.
Executarea codului Python din blocuri <script> производится через предварительную компиляцию этого кода, выполняемую обработчиком Brython после загрузки страницы. Компиляция инициируется при помощи вызова функции brython(), например через добавление «<body onload="»brython()»">». На основе Python-кода формируется представление на языке JavaScript, которое затем выполняется штатным JavaScript-движком браузера (для сравнения, проект PyPy.js предлагает для выполнения Python-кода в браузере скомпилированный в asm.js интерпретатор CPython, а Skulpt реализует интерпретатор на JavaScript).
Performanța finală a celor mai multe operații în scripturile Python încorporate în paginile web este aproape de performanța CPython. Întârzierea apare doar în etapa de compilare, însă pentru a o elimina se oferă posibilitatea de a încărca codul precompilat în JavaScript, care este folosit pentru a accelera încărcarea bibliotecii standard (Brython oferă un instrument pentru crearea bibliotecilor JavaScript bazate pe module Python).
Noua versiune se distinge prin asigurarea compatibilității cu CPython 3.11 și implementarea majorității noilor funcționalități din această ramură, inclusiv suportul pentru grupuri de excepții și expresia „except*”, detalierea expresiilor problematice în mesajele de diagnostic și atașarea notelor la excepții.
Sursa: opennet.ro
