3 technologies de programmation Web qui offrent des alternatives à JavaScript

JavaScript est l’un des langages de programmation les plus populaires au monde. Non seulement il figure généralement en bonne place sur les listes de langages de programmation populaires produits par RedMonk, Stack Overflow, TIOBE et d’autres organisations, mais il possède également la plus grande communauté de développeurs au monde, du moins selon le récent State of the Developer Nation de SlashData.

Pour les développeurs Web, JavaScript est un langage essentiel, peut-être la langue essentielle, compte tenu de sa compatibilité. D’autres rivaux sont depuis longtemps tombés au bord du chemin. Par exemple, Delphi vous permettait de créer des applications basées sur des formulaires qui s’exécutaient dans le navigateur sous Windows, mais personne ne les utilisait. Plus récemment, certains développeurs ont orienté Dart comme un remplacement possible de JavaScript, mais il n’a pas réussi à gagner du terrain auprès de nombreux créateurs de navigateurs.

Si vous en avez assez d’utiliser JavaScript, vous pouvez toujours explorer le développement d’applications Python ou C# qui s’exécutent dans le navigateur. Plus largement, ces autres langages populaires représentent-ils une menace pour le “territoire” de JavaScript ? Des outils de développement Web pratiques vous permettent d’explorer ce que d’autres langages peuvent offrir.

Brython : Python 3.0 en cours d’exécution dans votre navigateur

L’objectif de Brython est de remplacer JavaScript par Python comme langage de script pour les navigateurs. Par exemple, ci-dessous se trouve le code source Python pour “Hello World!” dans un navigateur. Entrez votre nom dans la zone de texte, cliquez sur le bouton et une fenêtre contextuelle apparaît. Pas mal pour cinq lignes de code.

from browser import document, alert
from browser.widgets.dialog import InfoDialog

def echo(ev):
    InfoDialog("Hello", f"Hello {document['zone'].value} !")

document["test"].bind("click", echo)

Tout ce qu’il faut pour l’exécuter est un court fichier HTML et votre Python placé dans un élément de script. C’est très élégant. Il fonctionne également sur les smartphones ainsi que dans tous les navigateurs modernes.



Une série de modules a été fournie pour les éléments liés au Web qui ne sont généralement pas pris en charge par Python, par exemple, Ajax, le démarquage, le stockage local, les minuteries, les sockets Web, les travailleurs, etc. Je l’ai essayé avec Chrome, ce qui semblait bien (mais on prétend que les performances sont meilleures avec Firefo)x.

Le wiki Brython sur GitHub répertorie une série d’applications alimentées par Brython.

Pyodure

Une alternative de programmation à Bryton est Pyodide, qui compile Python 3.9 avec une pile scientifique pour WebAssembly (la pile scientifique étant NumPy, Pandas, SciPy et plus de 75 packages). Il vous permet également d’installer des roues Python pures à partir de PyPi.

Il s’agit d’un projet relativement nouveau qui n’est apparu qu’en 2018 et qui est une retombée d’un projet Iodide non maintenu. Comme Brython, vous exécutez des programmes Python dans un script mais ici vous devez passer le code Python dans une fonction comme celle-ci :

pyodide.runPython(`
  import sys
  sys.version
`);

Malgré sa nouveauté, Pyodide est un outil de programmation très impressionnant mais plus difficile à comprendre que Brython. Si vous voulez WebAssembly, optez pour Pyodide, car il est construit dessus (WebAssembly peut être utilisé pour améliorer les performances de Brython, mais c’est plus compliqué).

D’autres alternatives à Brython et Pyodide incluent Skulpt et Transcrypt. J’ai appris Python en utilisant CodeSkulptor basé sur Skulpt, lors d’un cours à distance à l’Université Rice. Skulpt est très bon pour apprendre Python car il s’exécute simplement dans le navigateur. Vous voyez une fenêtre d’édition sur la gauche avec un bouton d’exécution en dessous et une fenêtre de sortie sur la droite ; mais il s’agit plus d’un bac à sable pour exécuter Python que d’un moyen de développer des logiciels.

Transcrypt utilise une approche différente et précompile Python en JavaScript. Cela n’utilise pas Python entre les balises de script, car cela ralentirait les choses. Contrairement à Brython, il utilise des bibliothèques JavaScript, pas Python. C’est une approche intéressante, vous permettant d’écrire du JavaScript en Python. Si vous êtes à l’aise avec JavaScript et Python, cela peut fonctionner pour vous.

Assurez-vous de jeter un œil à leur galerie d’applications.

C# et Blazor

Si vous préférez programmer et exécuter C # dans le navigateur, Blazor est la solution. Comme Pyodide, il est également apparu en 2018 et se décline en deux versions : Server et WebAssembly. Il est également multiplateforme, vous pouvez donc développer des applications Blazor sur Linux et Mac ainsi que sur Windows.

Blazor s’appuie sur ASP.NET en utilisant la syntaxe Razor qui mélange HTML avec du code dans un bloc @code. Par exemple, il s’agit d’une page Web qui incrémente un compteur lorsque vous cliquez sur le bouton :

@page "/counter"

Counter

Current count: @currentCount

@code { private int currentCount = 0; private void IncrementCount() { currentCount++; } }

Dans la version serveur, votre code C# s’exécute sur le serveur et communique avec le frontal JavaScript à l’aide du protocole SignalR. Ce n’est que dans la version WebAssembly que votre C # (maintenant compilé en tant que WebAssembly) s’exécute dans le navigateur. Vous pouvez l’héberger sur un serveur Asp.Net afin que les données soient extraites du serveur.

Conclusion

Chacune de ces technologies de programmation, y compris le C# Blazor WebAssembly, utilise JavaScript en coulisse d’une manière ou d’une autre, ne serait-ce que pour charger un composant. Mais vous n’avez pas besoin de connaître JavaScript pour utiliser l’un d’entre eux (bien qu’avec Transcrypt, cela aiderait probablement, car vous pouvez regarder le code JavaScript vers lequel le code Python transpile).

À l’exception de Blazor, je ne pense pas qu’aucun d’entre eux soit vraiment grand public, mais Brython, Pyodide et Transcrypt ont du potentiel. Quant à WebAssembly, parce qu’il s’agit de code compilé, il est devenu très populaire pour exécuter des logiciels malveillants, en particulier l’extraction de cryptomonnaies cachées sur les machines des visiteurs du site Web. Cela dit, il n’a encore que quelques années, donc peut-être que quelqu’un va implémenter un langage facile à développer qui produit WebAssembly.

Certains d’entre eux constituent-ils une menace pour JavaScript ? Probablement pas, mais si vous cherchez d’autres moyens de développement Web, n’hésitez pas à les essayer.

Leave a Comment

Your email address will not be published. Required fields are marked *