# ? Python & JavaScript Publié le 15 juin 2013

J'ai co-présenté avec Vincent des expérimentations utilisant Python et JavaScript lors de la conférence Web-5 qui se tenait à Béziers ces 2 derniers jours. C'était l'occasion de comprendre un peu mieux JavaScript et les frameworks/bibliothèques récentes dans les 2 langages et ça m'a presque réconcilié avec JavaScript. Au programme, il y avait :

- Django & React : une simple réalisation du tutoriel, peut-être l'exemple le moins intéressant (on ne l'a même pas montré faute de temps) mais le concept de mettre directement son html dans le js me rappelle les belles années de PHP :-) ;
- Node & Brython : ce qui était à la base un gros troll (JS côté serveur et Python côté client) s'est révélé être ludique puis prise de tête suite à mes déboires avec le parsing JSON de Brython qui est manifestement cassé à l'heure actuelle, en tout cas ça ne m'a pas donné envie d'aller creuser plus loin ;
- RapydScript : digne successeur de Pyjamas et déniché par Vincent la veille de notre intervention. La lisibilité du code JavaScript généré à partir d'un code utilisant des classes et de l'héritage côté Python m'a vraiment bluffé ;
- Python 3.3 avec Tulip + websockets & AngularJS : pas grand chose à dire sur Angular si ce n'est qu'il intègrera vraisemblablement Polymer (voir la suite) dans une future version. Par contre l'utilisation de Python 3.3 avec les websockets a été douloureuse, surtout en raison de mon incompétence sur le sujet mais j'ai finalement réussi à faire tourner un exemple minimaliste ;
- Tornado & Polymer : toujours un plaisir de servir des websockets avec Tornado, dans ce cas précis il renvoyait des données du CPU récupérées via psutil pour tracer un graphe dynamique en temps-réel. La bonne surprise de toute la grappe de technologies utilisées c'est vraiment Polymer qui implémente les Web Components comme le fait x-tags par exemple mais en étant plus complet et en tentant de standardiser une certaine logique dans les templates pour avoir plus de flexibilité avec le Shadow DOM de manière native. Si vous considérez votre application web comme une série de composants réutilisables et indépendants (voir l'exemple du dashboard) ça devient vraiment puissant !

Vous retrouverez l'ensemble de ces exemples codés à l'arrache sur le dépôt dédié à la session mais agrémentés d'un `README` dédié à chaque exemple qui devrait vous aider à comprendre. N'hésitez pas à bidouiller et à proposer vos améliorations !