Lancement du projet Brython

Le
Pierre Quentel
Bonjour,

J'annonce par ce message le lancement du projet Brython (Browser Python) qu=
i a pour objectif de remplacer Javascript par Python comme langage de progr=
ammation des navigateurs web, y compris sur mobile. Rien que ça !

Par exemple, pour afficher "Hello world" en cliquant sur un bouton, on peut=
écrire ce script dans une page HTML

<script type="text/python">
def hello():
alert('Hello world')
</script>

Pour que ce script fonctionne, il faut simplement inclure le script brython=
.js dans le document HTML, et exécuter la fonction brython() quand la pag=
e est chargée

Techniquement, Brython est un interpréteur Python écrit en Javascript, =
et adapté à l'environnement du navigateur : l'essentiel du langage Pyth=
on (version 3) est implémenté, sauf ce qui n'a pas de sens dans ce cont=
exte (print, open, input) ; on y ajoute quelques mots clés comme "win" (l=
'équivalent de "win" en Javascript), "doc" (document), "alert", "log" (po=
ur console.log), et tout ce qu'il faut pour construire une page HTML et int=
eragir avec elle

Toutes les balises HTML sont représentées par une fonction intégrée=
; par exemple pour créer un lien on utilise la syntaxe

link = A('Site Python',href="htt://www.python.org")

et pour ajouter ce lien dans la page HTML on l'ajoute au document (à l'ob=
jet doc) par l'opérateur <= (ça rappellera quelque chose aux utilisat=
eurs de Karrigell et de son module HTMLTags) :

doc <= link

Les erreurs de syntaxe et d'exécution sont affichées dans la console Ja=
vascript, en essayant de refléter les messages Python

Brython est différent de Pyjamas, qui génère une page HTML ne contena=
nt que des scripts Javascript à partir de scripts Python. Il est plus pro=
che de Skulpt, mais l'objectif de Skulpt n'est pas de créer des applicati=
ons web, mais de développer un interpréteur Python exécutable dans un=
navigateur, et je n'ai pas réussi à entrer dans le code Javascript de =
Skulpt

Je travaille sur ce projet depuis quelques mois. Evidemment il est loin d'=
être complètement au point : écrire un interpréteur, ce n'est pas s=
imple, et je découvre des bugs tous les jours. J'ai quand même implém=
enté quelques exemples, donc un de près de 400 lignes ; ils sont visibl=
es sur le site http://www.brython.info (le code source des exemples est é=
videmment accessible par la fonction "voir source" du navigateur)

Une documentation plus complète est également disponible sur ce site. P=
our l'instant tout est en français, je traduirai en anglais plus tard

Je recherche des contributeurs, à plusieurs niveaux :
- des testeurs qui essaient des bouts de code Python sur la console (http:/=
/www.brython.info/test/console.html) et signalent des bugs en cliquant sur =
le bouton "report bug"
- des développeurs (Python et Javascript) qui améliorent le code
- et toute personne intéressée par le projet et qui peut donner des con=
seils, des avis sur l'interface de programmation, etc

C'est un projet ambitieux qui, s'il atteint un stade de maturité suffisan=
t, peut prendre une certaine importance dans la communauté Python. J'esp=
ère que plusieurs d'entre vous seront intéressés ; ils peuvent se sig=
naler sur la liste de diffusion : https://groups.google.com/forum/?fromgrou=
ps#!forum/brython-fr

Le développement est géré sur Google Code : http://code.google.com/p/=
brython/
Télécharger brython.js : http://code.google.com/p/brython/downloads/det=
ail?name=brython.js#makechanges

Cordialement,
Pierre
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Nicolas
Le #24993272
Le 25/11/2012 21:06, Pierre Quentel a écrit :
Bonjour,

J'annonce par ce message le lancement du projet Brython (Browser Python) qui a pour objectif de remplacer Javascript par Python comme langage de programmation des navigateurs web, y compris sur mobile. Rien que ça !

Par exemple, pour afficher "Hello world" en cliquant sur un bouton, on peut écrire ce script dans une page HTML

<script type="text/python">
def hello():
alert('Hello world')
</script>

Pour que ce script fonctionne, il faut simplement inclure le script brython.js dans le document HTML, et exécuter la fonction brython() quand la page est chargée

Techniquement, Brython est un interpréteur Python écrit en Javascript, et adapté à l'environnement du navigateur : l'essentiel du langage Python (version 3) est implémenté, sauf ce qui n'a pas de sens dans ce contexte (print, open, input) ; on y ajoute quelques mots clés comme "win" (l'équivalent de "win" en Javascript), "doc" (document), "alert", "log" (pour console.log), et tout ce qu'il faut pour construire une page HTML et interagir avec elle

Toutes les balises HTML sont représentées par une fonction intégrée ; par exemple pour créer un lien on utilise la syntaxe

link = A('Site Python',href="htt://www.python.org")

et pour ajouter ce lien dans la page HTML on l'ajoute au document (à l'objet doc) par l'opérateur <= (ça rappellera quelque chose aux utilisateurs de Karrigell et de son module HTMLTags...) :

doc <= link

Les erreurs de syntaxe et d'exécution sont affichées dans la console Javascript, en essayant de refléter les messages Python

Brython est différent de Pyjamas, qui génère une page HTML ne contenant que des scripts Javascript à partir de scripts Python. Il est plus proche de Skulpt, mais l'objectif de Skulpt n'est pas de créer des applications web, mais de développer un interpréteur Python exécutable dans un navigateur, et je n'ai pas réussi à entrer dans le code Javascript de Skulpt

Je travaille sur ce projet depuis quelques mois. Evidemment il est loin d'être complètement au point : écrire un interpréteur, ce n'est pas simple, et je découvre des bugs tous les jours. J'ai quand même implémenté quelques exemples, donc un de près de 400 lignes ; ils sont visibles sur le site http://www.brython.info (le code source des exemples est évidemment accessible par la fonction "voir source" du navigateur)

Une documentation plus complète est également disponible sur ce site. Pour l'instant tout est en français, je traduirai en anglais plus tard

Je recherche des contributeurs, à plusieurs niveaux :
- des testeurs qui essaient des bouts de code Python sur la console (http://www.brython.info/test/console.html) et signalent des bugs en cliquant sur le bouton "report bug"
- des développeurs (Python et Javascript) qui améliorent le code
- et toute personne intéressée par le projet et qui peut donner des conseils, des avis sur l'interface de programmation, etc

C'est un projet ambitieux qui, s'il atteint un stade de maturité suffisant, peut prendre une certaine importance dans la communauté Python. J'espère que plusieurs d'entre vous seront intéressés ; ils peuvent se signaler sur la liste de diffusion : https://groups.google.com/forum/?fromgroups#!forum/brython-fr

Le développement est géré sur Google Code : http://code.google.com/p/brython/
Télécharger brython.js : http://code.google.com/p/brython/downloads/detail?name=brython.js#makechanges

Cordialement,
Pierre



Bonjour Pierre,

C'est super ambitieux mais ça me plait bien comme idée. Je regarde ça de
plus près dès que j'ai un moment.

Nicolas
PiLS
Le #24994352
Pierre Quentel
Bonjour,


Bonjour

- des testeurs qui essaient des bouts de code Python sur la console (http://www.brython.info/test/console.html) et signalent des bugs en cliquant sur le bouton "report bug"



Ca devrait être dans mes cordes. Je peux faire un peu de traduction
aussi, au besoin.


--
PiLS
Laurent Pointal
Le #24995002
Pierre Quentel wrote:
<zip>

Intéressant, tu devrais dupliquer l'annonce sur , sur l'afpy
(si tu veux je peux faire ces deux là) - voir sur c.l.p.announce.

A+
Laurent.
Pierre Quentel
Le #24995252
Le lundi 26 novembre 2012 23:09:48 UTC+1, Laurent Pointal a écrit :
Pierre Quentel wrote:

<zip>



Intéressant, tu devrais dupliquer l'annonce sur , sur l' afpy

(si tu veux je peux faire ces deux là) - voir sur c.l.p.announce.



A+

Laurent.



Bonjour Laurent,

Bonne idée, si tu peux faire l'annonce vers l'AFUL et l'AFPY ça m'int éresse. Pour démarrer je me limite aux listes francophones, je me laiss e quelques semaines d'échanges et d'avis avant de publier plus largement sur les listes clp et clp-announce

A+
Pierre
|-| /-\\ |_ ()7 [°¿°]
Le #25087792
Bonsoir !

D'abord, je m'excuse du délai, mais je n'ai plus accès à ce newsgroup que de
temps à autre...

Pour le projet, l'idée est excellente. utiliser Python comme langage de
script d'un navigateur ouvre plein d'horizons.

Mais, ce serait-ce pas ce qui est déjà disponible sous Internet-Explorer,
avec l'Active-scripting ?
Voici le code-source d'un exemple qui fonctionne (le fichier peut s'appeler
"meteopython.hta") :

<hta:application
windowstate="normal"
caption="no"
singleinstance="yes"
/>
<html>
<head>

<script language=Python>
def Init():
self.resizeTo(480,270);
self.moveTo(10,10)

def meteo(num):
obj = document.getElementById('METEODIV')
st = ' src="http://meteo.region-nord.com/webmestre/prev/j'+num+'.jpg"
alt="prevision meteo" style="border:none"> </a>'
obj.innerHTML = st

</script>
</head>

<body bgColor=#FFFFFF background="" scroll=no onload="Init();">
<FORM>
<input ID="bt1" name="bt1" type="button" style="width:100px"
VALUE="Aujourd'hui" onmousedown="meteo('1')" />
<input ID="bt2" name="bt2" type="button" style="width:100px" VALUE="Demain"
onmousedown="meteo('2')" />
<input ID="bt3" name="bt3" type="button" style="width:100px"
VALUE="Après-Demain" onmousedown="meteo('3')" /><br>

<blockquote>
<DIV id="METEODIV">MMEETTEEOO</DIV>
</blockquote>
</FORM>

<script language=Python>
meteo('1')
</script>
</body></html>



---------------------------------------
(testé sous Windows 7 & IE-9 et sous Windows 8 et IE-10, avec Python 2.7)
---------------------------------------
@-salutations
--
Michel Claveau
Nicolas
Le #25088202
Le 25/12/2012 22:28, |-| /- |_ ()7 [°¿°] a écrit :
Bonsoir !

D'abord, je m'excuse du délai, mais je n'ai plus accès à ce newsgroup
que de temps à autre...

Pour le projet, l'idée est excellente. utiliser Python comme langage de
script d'un navigateur ouvre plein d'horizons.

Mais, ce serait-ce pas ce qui est déjà disponible sous
Internet-Explorer, avec l'Active-scripting ?

---------------------------------------
(testé sous Windows 7 & IE-9 et sous Windows 8 et IE-10, avec Python 2.7)
---------------------------------------
@-salutations



Et avec Firefox, Chrome, Opera... ?
Et sous Linux, OS-X, Android... ?
michel.claveau
Le #25088602
Le mercredi 26 décembre 2012 11:44:28 UTC+1, Nicolas a écrit :

Et avec Firefox, Chrome, Opera... ?
Et sous Linux, OS-X, Android... ?



Re !

D'abord, ma réponse n'était pas une critique, mais une suggestion de so urce d'inspiration. D'autant plus que Brython devra utiliser différentes techniques, selon les navigateurs (par exemple, Opera et Chrome ont des arc hitectures très différentes)

Ensuite, l'Active-scripting n'existe que pour IE (6, 7, 8, 9 et 10), Maxtho n, Lavig, Avant-Browser, World-browser, celui d'Orange et quelques autres.
Alors, pour opera, ben non, ça ne marchera pas. Pour FF ou Chrome (et Chr omium et SRware-Iron), il faut installer, respectivement, IE-frame ou Chrom e-frame.

Ceci dit, lorsque j'ai voulu tester Brython avec IE-10, ça répond que H TML-5 n'est pas supporté, or c'est le navigateur le plus avancé sur ce point.
Donc, je me demande quels navigateurs seront ciblés par Brython...

@+
--
Michel Claveau
Pierre Quentel
Le #25101892
Ceci dit, lorsque j'ai voulu tester Brython avec IE-10, ça répond que HTML-5 n'est pas supporté, or c'est le navigateur le plus avancé sur c e point.

Donc, je me demande quels navigateurs seront ciblés par Brython...



Bonjour,

Brython cible naturellement tous les navigateurs. Jusqu'à présent j'ava is testé sur Chrome et Firefox sur un PC sous Windows XP, le navigateur Android sur un Samsung Galaxy et Safari sur Apple. Quand j'ai testé sur O pera, tout a marché du premier coup. En voyant ton message, j'ai essayé sur IE8 et là, patatras : j'ai des messages d'erreur en pagaille

Le problème vient du fait que IE, contrairement aux autres navigateurs, n 'a pas l'air de supporter les classes DOM standard : Node, HTMLDocument, HT MLHtmlElement, que j'utilise dans Brython : au chargement, j'ai le message d'erreur "Error: 'HTMLDocument' is undefined"

Est-ce normal, et y a-t-il un moyen de contourner le problème ? Je n'ai r ien vu de concluant sur Internet

- Pierre Quentel
Laurent Pointal
Le #25104492
Pierre Quentel wrote:

Ceci dit, lorsque j'ai voulu tester Brython avec IE-10, ça répond que
HTML-5 n'est pas supporté, or c'est le navigateur le plus avancé sur ce
point.

Donc, je me demande quels navigateurs seront ciblés par Brython...



Bonjour,

Brython cible naturellement tous les navigateurs. Jusqu'à présent j'avais
testé sur Chrome et Firefox sur un PC sous Windows XP, le navigateur
Android sur un Samsung Galaxy et Safari sur Apple. Quand j'ai testé sur
Opera, tout a marché du premier coup. En voyant ton message, j'ai essayé
sur IE8 et là, patatras : j'ai des messages d'erreur en pagaille

Le problème vient du fait que IE, contrairement aux autres navigateurs,
n'a pas l'air de supporter les classes DOM standard : Node, HTMLDocument,
HTMLHtmlElement, que j'utilise dans Brython : au chargement, j'ai le
message d'erreur "Error: 'HTMLDocument' is undefined"

Est-ce normal, et y a-t-il un moyen de contourner le problème ? Je n'ai
rien vu de concluant sur Internet



? JQuery peut-être ?


- Pierre Quentel


--
Laurent POINTAL -
Publicité
Poster une réponse
Anonyme