IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Présentation de PyScript, le framework pour créer des applications Python avancées dans le navigateur


Sujet :

Python

  1. #1
    Chroniqueur Actualités
    Avatar de Bruno
    Homme Profil pro
    Rédacteur technique
    Inscrit en
    mai 2019
    Messages
    917
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Rédacteur technique
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : mai 2019
    Messages : 917
    Points : 10 949
    Points
    10 949
    Par défaut Présentation de PyScript, le framework pour créer des applications Python avancées dans le navigateur
    PyScript, le framework pour créer des applications Python avancées dans le navigateur,
    il permet d'imbriquer Python et HTML

    Dans un discours-programme à la PyCon 2022 à Salt Lake City, Utah, Peter Wang, Président-directeur général d'Anaconda, Inc a présenté un autre entrant dans le domaine des interpréteurs Python dans les navigateurs. La communauté Python a longtemps cherché un moyen de pouvoir écrire Python, au lieu de JavaScript, pour l'exécuter dans les navigateurs web, et il y a eu divers efforts en ce sens au fil des ans. Wang a annoncé PyScript comme un nouveau framework, construit sur l'un de ces projets antérieurs, pour permettre l'écriture de scripts Python directement dans le navigateur.

    Ces programmes ont accès à une grande partie de l'écosystème Python existant et peuvent interagir directement avec le modèle d'objet de document (DOM) du navigateur. En outre, il a fait des démonstrations assez révélatrices dans le cadre de son exposé.

    Nom : PyScript.png
Affichages : 203087
Taille : 32,5 Ko

    Wang a commencé par se présenter et présenter la société qu'il dirige, Anaconda, qu'il a cofondée avec Travis Oliphant il y a dix ans. Oliphant est le créateur de NumPy et l'un des fondateurs de SciPy, qui sont tous deux des pierres angulaires de l'écosystème de calcul scientifique Python. Anaconda est une distribution des langages de programmation Python et R pour le calcul scientifique (science des données, applications d'apprentissage automatique, traitement des données à grande échelle, analyse prédictive, etc.), qui vise à simplifier la gestion et le déploiement des paquets.

    La distribution comprend des paquets de science des données adaptés à Windows, Linux et macOS. Elle est développée et maintenue par Anaconda, Inc. qui a été fondée par Peter Wang et Travis Oliphant en 2012. En tant que produit d'Anaconda Inc., elle est également connue sous le nom d'Anaconda Distribution ou d'Anaconda Individual Edition, tandis que les autres produits de la société sont Anaconda Team Edition et Anaconda Enterprise Edition, qui sont tous deux payants.

    Plusieurs raisons ont poussé Anaconda et Oliphant à concentrer leurs efforts sur Python, notamment le fait que ce langage est accessible, même pour ceux qui n'ont pas de formation en informatique. Un autre point en sa faveur est que la communauté Python est généralement accueillante et agréable à travailler. Il s'agit là d'un « point très important si l'on veut continuer à élargir la base d'utilisateurs ».

    Anaconda a créé un certain nombre d'outils différents qui sont largement utilisés dans la communauté, et a également fondé l'association à but non lucratif NumFOCUS et les conférences PyData.

    Mais il y a un autre aspect du langage qui le rend si désirable de son point de vue : il peut être étendu avec des extensions binaires qui utilisent une API écrite en C, mais accessible depuis d'autres langages. Wang compare Python à « une Honda Civic avec des boulons de montage pour un moteur de distorsion ». Ainsi, le langage peut être appris par des enfants qui peuvent ensuite ouvrir le coffre « et boulonner des nacelles de distorsion » qui permettent au code de fonctionner plus rapidement que le C ou le C++ dans certains cas, a déclaré Wang.

    Cet aspect est parfois négligé, mais il signifie que Python peut être utilisé d'une manière que d'autres langages similaires ne peuvent pas. « Ce n'est pas seulement comme Node, ce n'est pas seulement une alternative à Ruby ». La raison pour laquelle Python a été récupéré par les entreprises de Wall Street il y a 10 ou 15 ans était cette capacité de distorsion, a-t-il dit.

    Ce qui fait défaut

    S’il est vrai qu’Anaconda a pour vocation de fournir une distribution Python, il n’en ait pas moins vrai que l'installation de tout ce qui est nécessaire à Python est trop difficile. Il existe un nombre considérable de paquets sur le Python Package Index (PyPI), mais il est difficile de les faire fonctionner ensemble. 20 % des programmeurs Python auraient une mauvaise expérience du langage. Il existe un grand nombre d'outils différents pour aider à résoudre ce problème, mais ils sont tous à environ 80 %, a-t-il dit, ce qui signifie que les gens ont une mauvaise expérience dans 20 % des cas, ce qui n'est "pas génial".

    Il est étrange que, pour le langage le plus populaire au monde, comme le serait Python, il soit difficile d'écrire et de distribuer des applications avec une interface utilisateur. Par exemple, vous ne pouvez pas écrire d'applications iOS avec Python. « Vous ne pouvez pas créer une application pour Windows, le bureau d'entreprise le plus populaire, avec une interface utilisateur ; même si vous utilisez un frontal Web, vous devez écrire JavaScript, CSS et HTML », a déclaré Wang.

    Cependant, les conséquences de ces deux points, à savoir les difficultés liées à la compilation et à la création d'interfaces utilisateur, rendent difficile le partage de son travail avec d'autres. À ceux qui considèrent Docker comme une solution à ce problème, Wang répond que lorsque vous faites une application avec Docker, vous « emballez un disque dur et l'envoyez à quelqu'un ». Cela « ne peut pas être notre façon d'amener des millions de personnes à utiliser ce matériel ».

    Dans une large mesure, Python est victime de son propre succès. C'est un excellent langage de liaison, mais cela signifie qu'il s'est lié à toutes ces choses. Une grande partie de ce que nous faisons en informatique est liée à des idées et à des architectures des années 1970 et 1980, a-t-il dit, en commençant par le langage C et le modèle de processus Unix ; cela inclut également des choses comme les chaînes d'outils et les protocoles d'interconnexion comme TCP/IP. Les bases du langage Python proprement dit peuvent être enseignées à n'importe qui en un week-end, a-t-il dit, mais il faut beaucoup plus d'efforts pour les amener au point où ils peuvent créer un exécutable pour Windows ou une application iOS pour un iPad. « Pouvons-nous libérer Python de tout cela ? »

    Python et WebAssembly

    Le navigateur Web a clairement gagné la guerre des systèmes d'exploitation, a déclaré Wang. Il ne sait pas si 2022 sera l'année du bureau Linux, (ce ne sera pas le cas) mais il sait qu'il y aura beaucoup de navigateurs sur les ordinateurs de bureau. JavaScript est le roi de certaines enquêtes sur la popularité des languages, car c'est le langage natif du navigateur. Donc, si nous voulons passer dans ce domaine, a-t-il dit, WebAssembly (ou Wasm) est clairement la bonne réponse.

    WebAssembly « change fondamentalement la donne ». Il s'agit d'un jeu d'instructions de CPU virtuel qui est récemment devenu une norme du W3C ; il dispose d'un espace d'adressage de 32 bits et peut effectuer des opérations arithmétiques de 64 bits. Il existe un outil de compilation, Emscripten, qui peut être utilisé pour compiler la plupart des codes C et C++ en WebAssembly, qui peut ensuite être exécuté dans le navigateur. Selon Wang, WebAssembly est bien supporté par les navigateurs, y compris les navigateurs mobiles.

    CPython est, bien sûr, un programme C et une grande partie de la pile numérique Python est écrite en C ou C++. Ces dernières années, des projets comme et JupyterLite ont compilé de grandes parties de la pile scientifique et numérique Python pour cibler WebAssembly.

    En se rendant sur le site de Pyodide, il est possible d’obtenir une boucle de lecture-évaluation-impression (REPL) Python dans son navigateur. À partir de ces « trois petits crochets d'angle sympathiques », il est possible d’importer NumPy et pandas. Depuis le site JupyterLite, il est possible d’obtenir un notebook dans le navigateur en exécutant JupyterLab sur le système local.

    Christian Heimes, développeur principal de Python, a donné des conférences et fait beaucoup de travail pour que CPython fonctionne avec WebAssembly. Il s'agira bientôt d'une plateforme supportée de niveau 2 pour CPython, a déclaré Wang. WebAssembly fournit simplement une autre architecture informatique, au-delà de x86, Arm et autres, que le projet CPython peut cibler.

    PyScript

    Wang et d'autres membres d'Anaconda ont examiné le travail effectué et ont réfléchi aux moyens de le rendre plus accessible à « beaucoup plus de gens ». À cette fin, Wang a annoncé PyScript, mais il l'a fait en codant en direct une démo "hello world" depuis la scène de la conférence. C'était sa première conférence PyCon, « peut-être ma dernière », a-t-il dit en riant, alors qu'il tapait un court fichier HTML qui chargeait un fichier pyscript.js de pyscript.net dans une balise.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <py-script>
       print("Hello PyCon 2022!")
    </py-script>

    Il a ensuite double-cliqué sur le fichier et le message d'accueil est apparu dans un onglet du navigateur ; qui a été accueilli par une salve d'applaudissements. Mais tout cela n'est que du HTML, a-t-il dit, alors il a entouré le code ci-dessus avec une balise <blink> et a rechargé. Ces jours-ci, bien sûr, la balise <blink> a été supprimée du HTML, peut-être malheureusement ; « maintenant je dois expliquer aux enfants qu'il n'y a pas de balise <blink> ».

    Il a donc ajouté une fonctionnalité de clignotement au code PyScript et a démontré quelques autres choses. Il a créé un <div> avec un nom, qu'il a ensuite ciblé pour écrire la chaîne en accédant au DOM pour récupérer l'objet pour le <div> ; il a également utilisé le module asyncio pour temporiser pendant une seconde, puis a effacé le <div> et a mis le tout dans une boucle.


    PyScript est donc un « framework pour créer des applications Python riches dans le navigateur ». Il permet d'imbriquer Python et HTML, fournit un accès complet au DOM et donne au code l'accès aux bibliothèques JavaScript, dans les deux sens. Le code Python peut appeler JavaScript ou être appelé par JavaScript. Ainsi, toute la logique et le code de l'application peuvent se trouver dans un seul langage, dans le navigateur, aucun serveur Web n'est nécessaire. Il est possible de mettre le fichier HTML sur une clé USB et le donner à un ami. Il est nécessaire de télécharger PyScript lui-même, mais cela se fait à partir du fichier HTML à l'aide de la balise <script>.

    PyScript n'est pas une sorte de fork de CPython, c'est le même code que celui que les participants exécutaient sur leurs ordinateurs portables et leurs serveurs, a dit Wang, simplement compilé pour Wasm. Il inclut tout le travail que Pyodide a fait pour que les principaux paquets numériques, scientifiques et de big data fonctionnent également pour Wasm. PyScript est un « framework d'opinion » qui fournit une interface de fonction étrangère (FFI) pour parler à JavaScript et au DOM ; Python a déjà intégré C, C++ et Fortran, donc JavaScript peut également être ajouté à la liste. « C'est vraiment l'informatique sans serveur ».

    Source : LWN

    Et vous ?

    Quel est votre avis sur PyScript ?

    Pensez-vous que PyScript peut être aussi bon que JavaScript pour l'exécution dans un navigateur web ?

    Voir aussi :

    La version 3.2 du framework Django est disponible, avec la découverte automatique d'AppConfig, elle apporte de nouveaux décorateurs pour le module d'administration

    Python 3.11 améliorera l'emplacement des erreurs dans les tracebacks et apporte de nouvelles fonctionnalités

    Python 3.11 gagnera en performance au prix d'un peu plus de mémoire, les gains de vitesse semblent se situer entre 10 % et 60 %

    La version 5.17 du noyau Linux est disponible, elle apporte des corrections de sécurité très importantes et une amélioration majeure au générateur de nombres aléatoires

    La version 1.15 du langage de programmation Go sortira bientôt, avec des améliorations dans l'outillage, la performance du compilateur et la bibliothèque standard
    Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Nouveau Candidat au Club
    Homme Profil pro
    vba access
    Inscrit en
    novembre 2011
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : vba access
    Secteur : Finance

    Informations forums :
    Inscription : novembre 2011
    Messages : 1
    Points : 0
    Points
    0
    Par défaut PyScript
    Je pense que webassembly a commencé de grandir ces dernières années.... Déjà Blazor webassembly ... PyScript... C'est formidable !

  3. #3
    Membre expérimenté
    Profil pro
    programmeur du dimanche
    Inscrit en
    novembre 2003
    Messages
    413
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : programmeur du dimanche
    Secteur : Santé

    Informations forums :
    Inscription : novembre 2003
    Messages : 413
    Points : 1 627
    Points
    1 627
    Par défaut
    Quel est votre avis sur PyScript ?
    J'avais regardé il y a quelques mois. Une partie des exemples ne chargeait pas (voir https://pyscript.net/examples/ ) ; maintenant si, mais le chargement reste très long.
    Il ont compilé quelques modules scientifiques, et l'interpréteur standard est chargé en js. Il y a très peu de fonctions ajoutées pour interagir avec le DOM et js et elles sont signalées en alpha.

    Pensez-vous que PyScript peut être aussi bon que JavaScript pour l'exécution dans un navigateur web ?
    Pas avec le temps de chargement actuel et la taille de l'interpréteur.

    La comparaison est plus intéressante avec Brython .

    Brython est mature, aussi rapide que js après cependant un temps de chargement à peine perceptible, et contient toutes les facilités pour interagir avec le DOM, js, et fournit une GUI minimaliste. Il y a aussi une fonction de tree shaking qui allège beaucoup le code.
    Par contre, brython ne peut importer que les modules en python.

    En conclusion, PyScript remplace le js beaucoup moins bien que brython, mais permet d'utiliser quelques modules scientifiques côté client et avec un temps de chargement très perceptible.

Discussions similaires

  1. Réponses: 4
    Dernier message: 27/06/2016, 17h04
  2. Réponses: 18
    Dernier message: 13/06/2013, 20h31
  3. Framework pour créer des PDF
    Par ioexception dans le forum ASP.NET
    Réponses: 2
    Dernier message: 26/10/2011, 17h53
  4. Réponses: 0
    Dernier message: 30/04/2008, 17h20
  5. quel langage pour créer des "applications" sur 1 s
    Par jaribu dans le forum Langages de programmation
    Réponses: 7
    Dernier message: 30/07/2003, 14h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo