Er is een release van het Brython 3.10-project (Browser Python) gepresenteerd met een implementatie van de programmeertaal Python 3 voor uitvoering in de webbrowser, waardoor het gebruik van Python in plaats van JavaScript mogelijk is om scripts voor het web te ontwikkelen. De projectcode is geschreven in Python en gedistribueerd onder de BSD-licentie.
Door de bibliotheken brython.js en brython_stdlib.js op te nemen, kan een webontwikkelaar Python gebruiken om de logica van de site aan de clientzijde te definiΓ«ren, met behulp van Python in plaats van JavaScript. Gebruik de tag om Python-code op pagina's op te nemen Ρ mime-ΡΠΈΠΏΠΎΠΌ Β«text/pythonΒ». ΠΠΎΠΏΡΡΠΊΠ°Π΅ΡΡΡ ΠΊΠ°ΠΊ Π²ΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π° Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ, ΡΠ°ΠΊ ΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ° Π²Π½Π΅ΡΠ½ΠΈΡ ΡΠΊΡΠΈΠΏΡΠΎΠ² (). ΠΠ· ΡΠΊΡΠΈΠΏΡΠ° ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΠ»Π½ΡΠΉ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΠΌ ΠΈ ΡΠΎΠ±ΡΡΠΈΡΠΌ DOM. ΠΠΎΠΌΠΈΠΌΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΎΠΉ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ΅ Python ΠΏΡΠ΅Π΄Π»Π°Π³Π°ΡΡΡΡ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π΄Π»Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ Ρ DOM ΠΈ JavaScript-Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΠΌΠΈ, ΡΠ°ΠΊΠΈΠΌΠΈ ΠΊΠ°ΠΊ jQuery, D3, Highcharts ΠΈ Raphael. ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ CSS-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠ² Bootstrap3, LESS ΠΈ SASS.
Python-code uitvoeren vanuit blokken ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ΅ΡΠ΅Π· ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½ΡΡ ΠΊΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠΌ Brython ΠΏΠΎΡΠ»Π΅ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΡΡΠ°Π½ΠΈΡΡ. ΠΠΎΠΌΠΏΠΈΠ»ΡΡΠΈΡ ΠΈΠ½ΠΈΡΠΈΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ Π²ΡΠ·ΠΎΠ²Π° ΡΡΠ½ΠΊΡΠΈΠΈ brython(), Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅ΡΠ΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ «». ΠΠ° ΠΎΡΠ½ΠΎΠ²Π΅ Python-ΠΊΠΎΠ΄Π° ΡΠΎΡΠΌΠΈΡΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ·ΡΠΊΠ΅ JavaScript, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π·Π°ΡΠ΅ΠΌ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΡΡΠ°ΡΠ½ΡΠΌ JavaScript-Π΄Π²ΠΈΠΆΠΊΠΎΠΌ Π±ΡΠ°ΡΠ·Π΅ΡΠ° (Π΄Π»Ρ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ, ΠΏΡΠΎΠ΅ΠΊΡ PyPy.js ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π΄Π»Ρ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Python-ΠΊΠΎΠ΄Π° Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΡΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΉ Π² asm.js ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ CPython, Π° Skulpt ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΠΈΠ½ΡΠ΅ΡΠΏΡΠ΅ΡΠ°ΡΠΎΡ Π½Π° JavaScript).
De uiteindelijke prestaties van de meeste bewerkingen in Python-scripts die zijn ingebed in webpagina's liggen dicht bij de prestaties van CPython. De vertraging treedt alleen op in de compilatiefase, maar om deze te elimineren wordt de mogelijkheid geboden om vooraf gecompileerde JavaScript-code te laden, die wordt gebruikt om het laden van de standaardbibliotheek te versnellen (Brython biedt tools voor het maken van JavaScript-bibliotheken op basis van Python-modules ).
De nieuwe release is compatibel met Python 3.10, inclusief ondersteuning voor operatoren voor patroonmatching (match/case). De nieuwe versie biedt ook een eerste implementatie van een abstracte syntaxisboom (AST, Abstract Syntax Tree) voor de Python-taal, die vervolgens kan worden gebruikt om JavaScript-code te genereren uit een universele AST.
Bron: opennet.ru