Shame on me: Je n’ai pas bloggé depuis des lustres alors même que j’avais un compte rendu presque fini de la superbe conférence de José Paumard à Devoxx France, mais je m’éloigne du sujet.

Shame on me, surtout, pour n’assister qu’à mon premier Paris JS User Group, situé dans les locaux d’Eyrolles pour sa 19ème édition.

Les talks

Libérez la puissance du canvas de HTML5 pour vos jeux

Nous eûmes d’abord le plaisir d’assister à une démo autour de l’utilisation du canvas, présentée par David Catuhe, développeur employé par Microsoft. Cela m’a rappelé d’ailleurs un tweet, qui énonçait :

ms tweet

Ce fut un peu le même état d’esprit. Très bon speaker, David s’est montré passionné et aussi très objectif vis-à-vis des insuffisances (mais aussi des forces !) d’Internet Explorer à l’ère d’HTML5.

Celui-ci a commencé par montrer une version "naïve" d’une application permettant d’insérer des backgrounds animés et comment, en quelques optimisations étonnamment simples à réaliser, obtenir un rendu beaucoup plus fluide, quel que soit le navigateur dans lequel le script s’exécute. J’ai particulièrement apprécié sa démarche didactique et rationnelle : avant d’entreprendre quelqu’optimisation que ce soit, il s’affaire à mesurer et repérer les bottlenecks. Comme Captain Obvious le sait, les optimisations efficaces n’émergent que très rarement de la direction du vent repéré par votre doigt liquéfié par vos soins.

Notez qu’il s’était déjà exprimé à propos de l’utilisation des canvas sur son blog: blog, je vous invite à le lire expressément.

Un nouveau framework JS orienté développement mobile

Mathias Desloges s’est ensuite frotté à l’exercice courageux mais périlleux du live coding, afin de promouvoir YellowJS, un framework Javascript MVC orienté développement mobile. Je ne pourrais malheureusement pas en dire grand-chose, ayant moi-même décroché suite aux difficultés successives rencontrées par le speaker.

Bien qu’un peu décousue, la démo a finalement fonctionné et nous avons pu voir un client graphique Twitter développé avec YellowJS. N’hésitez pas à vous renseigner par vous-mêmes sur le sujet (et encore désolé pour cette section laconique).

Ember Data

Contributeur au framework JS Ember, Paul Chavard de la startup de geeks Capitaine Train vînt ensuite nous détailler le fonctionnement d’un projet affilié à Ember : Ember Data.

Si je devais résumer en quelques mots, Ember Data pourrait être défini comme étant le module d’Ember dédié au mapping entre le monde objet et la couche de persistance (utilisable donc en tant qu’ORM mais pas que : ce n’est pas une base de données relationnelle qui est exploitée dans la plupart des cas).

Pourquoi ne pas l’intégrer dans le coeur d’Ember alors ? Ember est très orienté modules et découplage, c’est ce principe même qui a vu sa naissance. En effet, l’idée initiale était de créer une stack JS cohérente aggrégeant des outils simples et efficaces (Mustache pour le templating…​).

Tout le projet s’articule autour du pattern ActiveRecord, notamment massivement utilisé par le framework Rails de Ruby et s’implémente via des Adapter, afin de définir les opérations CRUD de base mais aussi des relations (OneToMany etc…​) entre les différentes entités. Notez que de gros acteurs du marché commencent à s’investir dans le développement d’Ember (en témoigne la page d’accueil), vous devriez en réentendre parler d’ici peu.

Bien que prometteur, Ember Data ne semble toutefois pas encore prêt pour la production, certaines fonctionnalités basiques de mapping ou de persistance sont encore manquantes. N’hésitez pas à contribuer au projet si le coeur vous en dit !

Générez vos sites web avec DocPad et Node.js

A alors pris la parole Khalid Jebbari, pour nous présenter un outil de génération de site statique: Docpad. Notez que la démo consistait en la présentation elle-même, basée sur DocPad en intégrant impress.js.

Khalid est un ancien développeur PHP, contributeur notamment à Drupal et nous a d’abord relaté, non sans justesse, le décalage entre l’objectif d’un CMS (i.e. la maintenance d’un site web pour le grand public) et son quotidien : tâches techniques et tâches éditoriales entremêlées, connaissances techniques requises assez importantes en décalage complet avec l’arsenal du néophyte qui n’a pas forcément envie de s’enquiquiner à configurer l’accès à une base de données ou modifier les templates de son thème favori.

En réaction à ce triste constat, une sorte de retour aux sources (ahah!) s’est observé : la création de sites complètement statiques. Github et Jekyll y sont d’ailleurs sans doute pour quelque chose.

Dans cette même mouvance, DocPad se veut un outil simple et s’adresse officiellement à un public ayant au moins quelques notions de base en HTML et CSS, notre néophyte devrait donc pouvoir sécher ses larmes. Cette librairie supporte de nombreux langages pour son moteur de templating (Markdown, ERB, Eco…​). Elle vous permet par exemple d’écrire votre contenu source en Eco (dialecte CoffeeScript de templating) qu’il génèrera en Markdown. Pour se faire, il suffit de suffixer le nom du fichier .md.eco dans le dossier de sources et le contenu sera automatiquement converti en Markdown (il est même possible de chaîner plusieurs transformations, via le suffixage .html.md.eco par exemple).

Ce mécanisme est certes puissant, mais il porte tout de même à confusion. Si ce genre d’outil est complètement abordable par un développeur, quid du fameux néophyte dont on parlait tout à l’heure ? Il n’y a bien sûr aucune obligation à utiliser cette fonctionnalité et l’on peut se contenter d’un fonctionnement à la Jekyll, mais j’ai peur que cette polyvalence devienne vite lourde à porter.

Lightning talks

S’en sont suivis alors deux lightning talks. Le premier, animé par Julien Guézennec, portait sur une petite librairie dépendante de jQuery, appelée BoxFx. Allez directement sur la page de démo, vous en apprendrez autant ;)

Puis, j’ai gardé la meilleure présentation pour la fin, Jérôme Étienne a ponctué la soirée par une présentation de debug.js, une librairie toute simple qui vise à combler quelques insuffisances du langage Javascript. Vous pourrez notamment chaîner les appels aux "getters magiques", vous protéger des NaN en furie ou encore faire le café. Plus sérieusement, ce projet apporte une quantité intéressante d’améliorations non négligeables avec en cadeau bonus un speaker sympathique qui bashe un peu sur les WAT?! de Javascript :)

Impressions en vrac

J’ai tout d’abord été frappé par la moyenne d’âge de l’audience, bien en deçà de celle du Paris JUG (c’est tout du moins mon ressenti).  L’ambiance y est décontractée, on sent que les passionnés sont là et qu’une véritable communauté s’est forgée au fil du temps. La soirée fut donc très agréable et la qualité du contenu (et des pizzas!) au rendez-vous.

J’espère que ce compte rendu, bien que certifié à la rache, vous aura tout de même donné envie de vous déplacer pour la prochaine édition !

One more thing!

Réservez votre vendredi 30 Novembre ! Contre un modeste prix d’entrée, Thomas Bassetto et Sylvain Zimmer se démènent pour ramener à Paris la crème mondiale des développeurs JS.

Alors, n’hésitez plus, cliquez ici et see you in DotJS!