Un framework Python basé sur un navigateur pour les 99% – La nouvelle pile

Raphael Madu, qui programme en langage machine et en Python, n’est pas sûr de voir l’intérêt de Pyscript, le nouveau framework Python développé par Anaconda.

C’est intéressant, a-t-il déclaré à The New Stack, mais le stagiaire en génie mécanique n’en a pas vu l’intérêt malgré l’avoir essayé et rédigé un court tutoriel à ce sujet.

“Il semble qu’il a beaucoup de potentiel”, a-t-il déclaré. “Mais pour l’instant, il n’y a vraiment rien de Pyscript en ce moment que j’ai vu.”

Il n’est pas le seul programmeur à ne pas voir l’intérêt – et ce n’est pas grave, a déclaré le co-fondateur et PDG d’Anaconda, Peter Wang. Pyscript n’essaie pas de convertir les développeurs Web professionnels. Au lieu de cela, il est conçu pour les 99 % d’utilisateurs Web qui ne sont pas des développeurs professionnels, a déclaré Wang.

“La chose la plus importante que je dirais aux gens qui disent : “Je ne vois pas pourquoi c’est nécessaire”, c’est simplement [that] il ne s’agit pas de vous », a-t-il dit. “C’est pour tous les écoliers que vous ne passez pas vos après-midi à essayer d’apprendre à construire leur première application.”

Inspiré par HyperCard

Apprendre à un enfant à programmer aujourd’hui est compliqué. En plus de leur apprendre la programmation, vous devez également leur apprendre à regrouper, à propos de l’architecture du serveur Web et du déploiement dans le cloud. Vous “passeriez trois jours à leur apprendre cela avant qu’ils ne puissent créer une application” Hello World “”, a déclaré Wang.

Outre un sens aigu de la justice, ce qui a inspiré Wang a été sa propre expérience de jeunesse avec HyperCard, un kit de développement pré-web pour Macintosh qui comprenait un langage de script.

“HyperCard était à peu près mon deuxième ou troisième langage ou environnement de programmation, et je reste toujours très inspiré par la simplicité avec laquelle un enfant – j’étais un enfant à l’époque – commençait à créer de vraies applications”, a déclaré Wang.

Au cours de sa longue carrière avec Python, il a vu de nombreuses personnes essayer Python comme première langue. Il compatit avec ces novices et développeurs citoyens, et espère que Pyscript leur fournira un moyen d’utiliser rapidement Python pour leur premier “Hello World”.

Comment fonctionne Pyscript

Python est facile à apprendre, mais il est difficile d’écrire et de distribuer des applications Python avec une interface utilisateur, a récemment souligné LWN.net. Même l’utilisation d’une interface Web nécessite l’écriture de JavaScript, CSS et HTML, a déclaré Wang à LWN.

Il s’avère que la clé du déploiement de Python est WebAssembly, a expliqué Wang. L’année dernière, Anaconda a commencé à explorer le travail effectué avec Python et WebAssembly – des projets comme Pyodide et JupyterLite, qui ont compilé des parties de la pile scientifique et numérique Python pour cibler WebAssembly.

“Nous avons été intrigués par certains des travaux sous-jacents qui commençaient à se produire autour de Python et WebAssembly”, a-t-il déclaré à The New Stack. “Une fois que la chose dans ma tête a cliqué, qu’il ne s’agit pas seulement d’avoir un petit terminal Python intégré dans le navigateur, exécutant WebAssembly, mais en fait, ouvrons tout l’environnement du navigateur à tout Python et à toutes les données Python, puis juste beaucoup de choses ont commencé à découler de cela.

WebAssembly est une norme W3C prise en charge par les navigateurs, y compris les navigateurs mobiles. Comme Wang l’a expliqué à LWN.net, WebAssembly est un jeu d’instructions CPU virtuel avec un espace d’adressage de 32 bits ; et il peut faire de l’arithmétique 64 bits. Le compilateur, Emscripten, peut être utilisé pour compiler la plupart des codes C et C++ vers WebAssembly. Parce que CPython est un programme C, une grande partie de la pile numérique Python est écrite en C ou C++, a-t-il déclaré.

Il semblait à Wang qu’avec quelques liaisons et du “sucre syntaxique”, Python – pas une variante de celui-ci, mais l’ensemble – pouvait s’exécuter dans le navigateur sans sacrifier la compatibilité avec le reste des composants de l’écosystème. Donc Pyscript a évolué à partir de là.

“Nous avons été intrigués par certains des travaux sous-jacents qui commençaient à se produire autour de Python et WebAssembly.”

Le PDG d’Anaconda, Peter Wang

“La difficulté avec Python par rapport à tout autre langage est qu’une grande partie de la puissance de Python provient de son utilisation pour l’analyse de données et le calcul numérique, et cela nécessite un ensemble très vaste, étendu et difficile à compiler de bibliothèques ou de packages C et C ++ et Fortran, nous pourrions les appeler », a-t-il dit. “Ainsi, une partie du grand ascenseur qui s’est produit récemment était [that] beaucoup de ces bibliothèques ont été portées pour fonctionner sur WebAssembly.

Cela a permis à Python et à son système d’extension de données de s’exécuter directement dans le navigateur en tant que citoyen de première classe aux côtés de quelque chose comme JavaScript, a-t-il déclaré.

Ce grand changement a rendu Pyscript possible. Anaconda a introduit quelques éléments de cadre d’opinion supplémentaires, a-t-il dit, avec la vision que quelqu’un serait capable d’écrire une balise HTML, d’insérer du code Python, puis de fermer la balise et cela fonctionnerait simplement dans le navigateur.

À l’heure actuelle, pour l’exécuter, le code frappe les serveurs d’Anaconda pour charger réellement le runtime et les packages Pyscript. Une fois ceux-ci chargés dans le navigateur de l’utilisateur, cependant, il n’est plus nécessaire de se connecter au serveur – il s’exécute entièrement localement dans le navigateur, a-t-il expliqué.

“Si vous êtes un développeur et que vous souhaitez utiliser Pyscript pour expédier votre application, vous placerez simplement les artefacts Pyscript, le runtime et les modules sur votre serveur”, a-t-il déclaré. “Lorsque l’utilisateur est venu sur votre serveur, il le chargerait ensuite à partir de vous, puis il s’exécuterait dans l’onglet de son navigateur.”

Il s’agit en fait d’un mécanisme de distribution d’applications peer-to-peer qui permet aux utilisateurs de partager des applications entre eux, a-t-il expliqué.

“S’ils se trouvaient dans un environnement complètement déconnecté, ils seraient toujours en mesure d’exécuter des applications Web complètes et authentiques avec toute la pile Python, et ils n’auraient pas à toucher le serveur de qui que ce soit”, a-t-il déclaré. “Donc, d’une certaine manière, cela indique en quelque sorte une capacité pour Web3, mais en utilisant Python pour faire le développement Web3.”

Pyscript est en alpha et n’est pas prêt pour la production, mais Wang a estimé qu’il était suffisamment prêt pour une démonstration lors de son discours d’ouverture à PyCon 2022.

Quelle est la prochaine étape pour Pyscript

Pyscript est toujours en alpha, mais Anaconda prévoit d’améliorer la vitesse de chargement des packages et la taille du téléchargement, pour le rendre plus rapide. Il travaille également sur l’augmentation de la prise en charge pour faciliter la création d’interfaces utilisateur. L’équipe travaille également sur les E/S de données et la persistance des données, car la prochaine étape après la création d’applications consistera à se connecter à une base de données, a-t-il déclaré. Dans quelques mois, Pyscript aura “de très belles choses” pour prendre en charge l’utilisation du framework, a-t-il déclaré.

La réponse de la communauté Python a été positive, a déclaré Wang, en particulier de la part des personnes Python qui ont vu le langage lutter pour être pertinent en termes de création d’applications.

“Ils peuvent voir avec Pyscript qu’ils ont maintenant un moyen de mettre les choses entre les mains des gens”, a déclaré Wang. “Vous trouvez les personnes qui comprennent vraiment ce que vous essayez de faire, engagez-vous avec elles, puis continuez à construire de grandes choses à partir de là.”

Image en vedette via une capture d’écran de Pyscript.net

Leave a Comment