Brython, pour Browser Python, est une implémentation de Python 3 fonctionnant dans le navigateur et ayant une interface vers les éléments et événements du DOM. Autrement dit, l’outil Brython supporte la syntaxe de Python 3, y compris les compréhensions, les générateurs, les métaclasses, les importations, etc., et de nombreux modules de la distribution CPython. Il comprend des bibliothèques permettant d'interagir avec des éléments et des événements du DOM et avec des bibliothèques JavaScript existantes telles que jQuery, 3D, Highcharts, Raphael, etc.
En outre, il supporte les dernières spécifications de HTML5/CSS3, et peut utiliser des frameworks CSS comme Bootstrap3, LESS… Selon ses développeurs, Brython a été développé pour remplacer JavaScript comme langage de script pour les navigateurs Web. D’après leurs explications, la vitesse d'exécution de Brython est similaire à celle de l'interpréteur CPython pour la plupart des cas d’utilisation. Son site expose quelques-unes des possibilités qu’il offre, de la création de simples éléments de document au glisser-déposer et à la navigation en 3D.
Code HTML : | Sélectionner tout |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | <html> <head> <script type="text/javascript" src="/path/to/brython.js"></script> </head> <body onload="brython()"> <script type="text/python"> from browser import document, alert def echo(event): alert(document["zone"].value) document["mybutton"].bind("click", echo) </script> <input id="zone"><button id="mybutton">click !</button> </body> </html> |
Dans Brython, la sortie peut être réalisée de différentes manières, notamment avec la fonction alert() (également définie dans le navigateur) qui affiche une fenêtre popup avec le texte passé en argument. Toutefois, si Brython peut être tout aussi utile que le JavaScript, parviendra-t-il à lui voler la vedette pour ce qui est de la programmation Web côté client ? Les développeurs habitués à l’écosystème JavaScript voudront-ils se servir de ce nouvel outil ? Beaucoup pensent que non et donnent pour argument le long chemin parcouru par JavaScript jusqu’ici.
À titre d’exemple, d’après le rapport sur l’état de JavaScript en 2019 (State of JS 2019) de Sacha Greif et Raphaël Benitte, quelque 11 millions de développeurs utiliseraient JavaScript de part et d’autre dans le monde. Le rapport a montré que, qu'on l'aime ou qu'on le déteste, le langage continue de gagner du terrain et son écosystème ne cesse de croître. Il est essentiel au développement moderne et est le premier langage de programmation sur GitHub depuis 2014. Le langage Python est à la deuxième place de ce classement, devançant Java qui est à la troisième place.
Par ailleurs, d’autres programmeurs estiment que JavaScript a fait un long chemin et, malgré ses bizarreries héritées, il est en fait très agréable avec ECMAScript 6 (ES6). De plus, son écosystème contient de nombreux outils permettant d’améliorer l'expérience de développement Web. Selon ces derniers, bien qu’il serait mieux d'utiliser un langage qui n'a pas besoin de 3 signes d’égalité pour faire des comparaisons saines, Python, avec sa forte corrélation entre les espaces blancs et les blocs de code, est-il un bon choix pour la transmission et l'exécution à distance ?
À cette question, certains développeurs Python ont répondu non. Ils estiment que les objets JS sont une des plus belles choses du langage. Par contre, selon eux, les objets Python sont toujours opaques pour beaucoup de développeurs Python. Ils ont aussi ajouté que beaucoup de choses supportées par les objets Python à l’instar de l'héritage semblent ouvertement indésirables, et le système de métatypes semble bien plus compliqué qu'il ne devrait l'être (en partie parce que l'héritage confond les choses). Et vous, utiliseriez-vous Brython au lieu du JavaScript pour la programmation Web côté client ?
Sources : Brython, Page GitHub de Brython
Et vous ?
Que pensez-vous de Brython ?
Selon vous, parviendra-t-il à voler la vedette à JavaScript pour ce qui est de la programmation Web côté client ?
Les développeurs habitués à l’écosystème JavaScript voudront-ils s'en séparer pour un nouvel outil ?
Voir aussi
État de JavaScript en 2019 : les développeurs aiment un peu plus React, Angular est en déclin, un groupe de développeurs pense que JS est « trop complexe »
Python devance Java et devient le deuxième langage de programmation le plus utilisé par les contributeurs sur GitHub après JavaScript
Python 3.9, la prochaine version du langage Python : construction des types génériques dans les collections standard et un analyseur PEG pour CPython
Les tendances dans les métiers de la technologie en France en 2017, une enquête réalisée par CodinGame