Basthon
Un bac à sable pour Python, dans le navigateur !

Basthon

Que signifie "Basthon" ?

Basthon est l'acronyme de "Bac À Sable pour pyTHON". Il ressemble au mot "baston", c'est une allusion à la "lutte" que peut parfois représenter l'apprentissage de la programmation, l'écriture d'un code ou son débogage.

Basthon, qu'est-ce que c'est ?

C'est :

Les interfaces sont accessibles ici.

À quoi ça sert ?

Basthon est utilisé pour s'initier au language de programmation Python 3 sans rien avoir à installer. Il faut seulement disposer d'un navigateur (Firefox, Chrome ou Chromium) à jour et d'une connexion à Internet.

Comment Basthon fonctionne-t-il ?

Le code est intégralement éxécuté par votre navigateur, côté client donc, il n'est même pas transmis sur le réseau. Basthon a été spécialement conçu pour respecter la vie-privée de ses utilisateurs.

Vous pouvez consulter la documentation de Basthon ici.

Sous quelle licence est placé le code source ?

Basthon a été intégralement construit à l'aide de logiciels libres. Il est lui-même placé sous la licence libre GNU GPL version 3 ou toute version ultérieure. Si vous pensez qu'un logiciel libre est simplement un logiciel gratuit, lisez ceci. L'ensemble du code source est disponible sur la plateforme FramaGit, ici, , et . N'hésitez pas à utiliser le système de suivi des bogues. La documentation est placé sous la licence CC BY-NC-SA 4.0.

Quels sont les logiciels et ressources tierces utilisées ?

L'exécution du code Python est confiée à Pyodide, une compilation de l'interprète de référence de Python (CPython) en WebAssembly. Quelques modifications ont été apportées pour pouvoir utiliser entre autres P5.js, Matplotlib, Sympy, Pandas, Turtle, Folium, Requests, Proj4js, Graphviz via le module graphviz à l'aide de viz.js et PythonTutor. Turtle n'est pas implémenté dans Pyodide, c'est une version modifiée de l'implémentation de Brython qui est utilisée dans Basthon.

Basthon-Notebook est un fork (une copie) de Jupyter-Notebook. Une grande partie du code derrière l'interface notebook de Basthon provient de Jupyter. C'est seulement l'interface avec Basthon-Kernel qui a été écrite par l'auteur de Basthon.

Basthon-JupyterLab est un fork (une copie) de JupyterLite.

Le logo Basthon a été réalisé avec la police KeyTabMetal publié par Tension Type sur dafont.com. Les icônes utilisés sont celles de la police Font Awesome et le favicon est le logo Python. Le système de notification et de dialogue de la console est basé sur notie.js.

En quoi Basthon respecte-t-il votre vie privée ?

Aucune donnée personnelle enregistrée, aucune publicité, aucune inscription. En effet, aucune donnée personnelle n'est transmise sur le réseau (pas même le code que vous écrivez), aucune donnée statistique n'est donc compilée (pas même sur la fréquentation du site). Aucun cookie n'est enregistré, seuls le dernier code entré et l'apparence de l'affichage sont sauvegardés dans l'espace de stockage local de votre navigateur. Ceci permet de retrouver Basthon dans l'état dans lequel on l'a laissé après une panne réseau, une actualisation de la page ou une fermeture du navigateur.

Ceci fait de Basthon un outil à part.

Pourquoi ne pas utiliser des projets existants ?

Pour l'auteur, le critère le plus important est que l'outil doit pouvoir être utilisé par des élèves pour des activités d'enseignement. Il doit donc être :

Le tableau comparatif suivant liste les différents projets testés par l'auteur à l'été 2020 pour interpréter du code Python. Il en ressort que Basthon est le seul outil répondant aux critères. C'est d'ailleurs de ce constat qu'est né Basthon.

Projet Pas de publicité Pas d'analyse¹ Pas d'inscription Exécution côté client Python 3
Repl.it
Trinket
Trinket (Python3)
CodeSkulptor
CodeSkulptor3
Cocalc
PythonSandbox
Lelivrescolaire.fr
OlineGDB
Programiz
Basthon
[1] Par analyse, on entend une analyse d'audience de type Google Analytics.

On remarque que si l'on fait abstraction de la présence d'une analyse de fréquentation pour CodeSkulptor3, c'est une alternative envisageable à Basthon. Cependant, deux points sont à souligner :

Ce dernier point est rédhibitoire pour une utilisation de type notebook !

Pourquoi ce choix d'interprète ?

Au début du projet, Basthon utilisait Brython. Plusieurs bogues et régressions on fait que l'auteur s'est tourné vers Skulpt. Malheureusement, Skulpt ne supporte pas complètement Python3 et surtout ne permet pas d'évaluer une expression Python ce qui empêche de l'utiliser dans un notebook. C'est alors que Pyodide est devenu l'interpète de Bashon. Il est beaucoup plus lourd que les deux autres mais son support de Python est bien plus complet.

Existe-t-il des bogues connus ?

Basthon est compatible avec les navigateurs Firefox, Chrome ou Chromium.

Depuis l'utilisation de l'interpréteur Pyodide à la place de Brython, aucun problème n'a été recensé.

Si vous rencontrez un problème, merci de contacter l'auteur à l'adresse ci-dessous.

Comment installer Basthon sur son propre serveur Web ?

C'est assez simple, il suffit de télécharger l'archive et de l'extraire à l'endroit approprié pour votre serveur Web.

Comment contacter l'auteur de ce site ?

Vous pouvez contacter l'auteur à l'adresse suivante, Romain.Casati_at_no_spam_ac-orleans-tours.fr. Remplacer _at_no_spam_ par @.