Retour Conférence DotJS

Salle DotJS

DotJS – 7 décembre 2015

Introduction

Nous nous sommes rendus le lundi 7 décembre 2015 au Théâtre de Paris afin d’assister à la conférence dotJS.

Cette conférence fait partie du groupe des dotConferences, qui comprend notamment :

  • dotSwift
  • dotScale
  • dotGo
  • dotCSS
  • dotSecurity
  • et donc dotJS

La conférence dotJS se targue d’être la plus grande conférence javascript en Europe. Chaque année, elle accueille des speakers prestigieux présentant des sujets divers et variés : cette année était notamment annoncé Brendan Eich, l’inventeur du langage.

1 millier de personnes étaient attendues cette année.

Organisation

Après avoir récupéré nos badges, nous avions un peu de temps avant le début de la première session de conférences. Nous en avons donc profité pour échanger avec les différents partenaires de l’event.

Il est à noter que l’event se déroulant au Théâtre de Paris, une seule conférence se déroulait à la fois.

On peut notamment citer :

wakanda

une plateforme javascript utilisée pour gérer l’ensemble des applis webs et mobiles. Elle se base notamment sur des outils et frameworks open source tels que AngularJS, ionic, Apache Cordova … et possède également un IDE intuitif qui comprend un outil de conception, un éditeur de code (JavaScript, HTML, CSS), un gestionnaire du modèle objet.
Un point intéressant est la génération d’objets à partir d’une base de données. Il est alors possible de surcharger ce modèle, et même de recréer des liens qui n’existeraient pas dans la base relationnelle.
https://wakanda.github.io/

platform.sh

une solution d’intégration continue PAAS qui se veut developer friendly, en permettant aux développeurs de se concentrer sur le code en laissant la plateforme gérer la partie DevOps. (génération d’environnement à la volée, cloud hosting …)
https://platform.sh/

clusterpoint

qui se veut être une troisième alternative aux bases de données SQL et No SQL en rassemblant les points forts de ces deux types (data and computation scalability + strong transactional consistency). Utilisation du javascript dans des query SQL  https://www.clusterpoint.com/

Conférences du matin

Nous nous sommes ensuite rendus dans l’amphithéâtre pour assister à la première session de conférences.

salle

Voici les sujets qui nous ont été présentés :

Modern async JS, par Christophe Porteneuve (@porteneuve)

A propos de la problématique des callback en javascript et de la gestion de l’asynchrone, et plus précisément l’écriture du code qui peut vite devenir incompréhensible à la lecture. (cf. callback hell)

Pour rester dans le système des callback, Christophe commence par nous présenter Async.js. Ce petit module fournit plusieurs fonctions qui permettent des traitements asynchrones. Cela ne demande pas de connaissances supplémentaires, il n’y a pas de perte de performances, le module est bien maintenu (@caolan). Mais cela ne résout que quelques problèmes initialement identifiés.

Puis, les promises nous ont été présentées. Elles existent déjà depuis un long moment, pas seulement en Javascript. Elles sont maintenant natives dans ES6. Avantages : elles sont fiables (un seul callback garanti), elles sont composables mais cela ajoute un nouveau niveau d’abstraction, il y a des légers problèmes de performance et l’exécution du code n’est pas vraiment très facile à comprendre (je ne parle même pas du débogage).

Les générateurs : un générateur est un type de fonction spécial qui fonctionne comme une fabrique (factory) d’itérateurs.

Exemple de générateur :

function* idMaker(){   
	var index = 0;   
	while(true)     
		yield index++; 
}  
var gen = idMaker();  
console.log(gen.next().value); // 0 
console.log(gen.next().value); // 1 
console.log(gen.next().value); // 2

Mais les générateurs ne sont pas asynchrones. Alors quel est le rapport avec notre problème ?

Si on combine les générateurs avec les promises, cela permet d’avoir du code asynchrone, mais écrit comme du code synchrone. Cette méthode est déjà expérimentée dans la librairie task.js.  

La bonne nouvelle, c’est que l’arrivée de ES7/2016 nous apportera deux nouveaux mots clé: async/await. Cela permet de régler les problèmes d’écriture de code : du code asynchrone écrit comme du code synchrone.

Lien vers les slides

Hyperdrive, par Mathias Buss (@mafintosh)

Mathias a publié beaucoup de modules sur NPM (750 modules avec une équipe de 3 personnes).  Il nous a présenté l’un deux, hyperdrive, qui est un module de partage de fichiers en peer2peer. Le principe est simple, et les concepts utilisés pour le développement du module étaient intéressants.

Le fonctionnement repose sur le partage via URL et sur un système de Hash qui permet de partager un fichier en plusieurs parties de tailles réduites.

Il permet entre autre de faire du Streaming vidéo…

Lien vers les slides / Dépôt github du projet hyperdrive

Dealing with Garbage, par Samuel Saccone, Software Engineer chez Google (@samccone)

Comment détecter et régler les problèmes de fuites mémoire ?

Une démonstration de comment utiliser la console de Chrome pour diagnostiquer les fuites mémoire et présentation de son outil drool, qui permet de détecter automatiquement les fuites mémoire et de les analyser. (https://github.com/samccone/drool)

Lien vers les slides

Vidéo : http://www.thedotpost.com/2015/12/samuel-saccone-dealing-with-garbage

http/2 is here, now let’s make it easy, par Rebecca Murphey (@rmurphey)

Rebecca nous a présenté http/2 et pourquoi il n’était pas encore très utilisé. Selon elle, il n’est pas encore utilisé pas parce que les développeurs ne veulent pas, mais parce qu’il n’existe pas « d’écosystème » complet prêt à l’accueillir (comme les serveurs, les navigateurs…).

Lien vers les slides

Vidéo : http://www.thedotpost.com/2015/12/rebecca-murphey-http2-is-here-now-lets-make-it-easy

Pause repas

Ne vous inquiétez pas, y’en aura pour tout le monde !!! (ou pas …)

En effet, le repas se déroulait dans les couloirs, où des plateaux de miniatures étaient disséminés un peu partout, le problème, le nombre de personnes … en quelques minutes, tout était vide.

Nous nous sommes donc divisés en groupes de 2 pour chercher les … pizzas, denrée rare mais nourrissante.

A noter qu’une montagne de fromage se trouvait sur une table, mais qu’elle n’a pas fait beaucoup d’émule étant donné la présentation style “oeuvre d’art contemporaine”.

screen

Conférences de l’après midi

Elle s’est découpée en deux parties, tout d’abord des présentations en temps limité (environ 10-15 minutes), puis des présentations plus longues.

Henrik Joreteg : Pocket-sized JavaScript

Henrik part du constat que le javascript sur mobile est lent et peu performant. Il propose ensuite une approche qui consiste à  s’appuyer sur les bonnes idées des gros frameworks type Angular et utiliser des nouvelles techniques (Virtual DOM et WebWorkers) afin de produire du code minimaliste pour une application javascript sur mobile beaucoup plus rapide.

Vidéo + slides : http://www.thedotpost.com/2015/12/henrik-joreteg-pocket-sized-javascript

Tim Caswell : Teaching Kids Programming using Web Browsers and Real Robots

http://www.thedotpost.com/2015/12/tim-caswell-teaching-kids-programming-using-web-browsers-and-real-robots

Petite surprise pour cette présentation , le speaker Tim Caswell  est venu sur scène avec son jeune fils de 9 ans : Jack . Il a mis en place un langage simplifié (peu de symboles) et utilise un IDE comprenant des bonnes fonctions de validation et coloration syntaxique afin de  rendre plus  accessible la programmation à des enfants. Son fils nous a fait ensuite une demo live, en codant un petit programme permettant d’allumer des LEDs.

Andre Medeiros : The whole future declared in a var

André est l’inventeur du framework javascript Cycle.js.

Il nous a présenté la notion de “Micro-Service”.

Nouveau paradigme → programmation fonctionnelle réactive

Analogie avec Excel → dès que variable change les cellules avec des formules qui la contiennent se mettent à jour.

Les concepts important à retenir sont :

  • Scalabilité
  • Pas de serveur requis
  • Encapsulé

Exemple d’implémentation :

  • Amazon
  • Pay by use

RxJS (ReactiveX)

Présentation du framework “ReactiveX”.

Les concepts important à retenir sont :

  • Reactive programming
  • Gestion de stream
  • Très similaire à Scala dans les concepts

Pour plus de détail :

http://www.thedotpost.com/2015/12/andre-medeiros-the-whole-future-declared-in-a-var

Etienne Margraff : VorlonJS

Présentation de VorlonJS : un outil de debugging multi navigateur, open source et extensible.

Il permet de débugguer du JavaScript, en apportant la possibilité de débugguer plusieurs devices en même temps.

Il permet également de débugguer des mobiles.

http://vorlonjs.com/

Slides : http://fr.slideshare.net/emargraff/dotjs-lightning-talk-vorlonjs

Johannes Fiala : How to end manual REST-API client coding

Démonstration de comment créer une API rapidement avec Spring Boot, puis documenter les différentes opérations et générer rapidement le code client javascript avec l’outil de Swagger Codegen

http://www.thedotpost.com/2015/12/johannes-fiala-how-to-end-manual-rest-api-client-coding

  • Eric Schoffstall ; Real world webRTC
    • Eric Schoffstall est le créateur de Gulp.
    • Gulp 4.0 arrive bientôt, cela avait pris du retard à cause d’un bogue NPM.
    • Eric s’est lancé dans une boîte faisant du speed-dating par WebRTC ; il a dû faire en sorte que ça fonctionne sur tous les navigateurs. Beaucoup de galères pour IE, Safari… et sur mobile.
    • Pour Android, il a utilisé Crosswalk.
    • Pour iOS, il a utilisé iosrtc.
    • Pour IE / Safari, il a dû recourir au plug-in TEMASYS.
    • Comme ça a été l’enfer pour lui, il a voulu faciliter le travail des autres pour la suite, et a lancé http://rtc.works : rtc-everywhere ; un setup cross platform pour webRTC.
  • Forbes Lindesay : conception de Pug
    • Pug est le nouveau nom du langage de templating Jade.
    • Le talk décrit comment concevoir un outil de transpilation tel que Pug: il a montré comment coder un lexer, parser, code generator et linker.
    • Un talk intéressant pour ceux qui veulent contribuer à un projet de transpilateur (Babel, Webpack, Less, Sass etc.).

Conclusion

Voilà qui conclut une journée bien dense avec un grand nombre de conférences portant sur des thèmes assez variés.

Retour en Lorraine avec des goodies plein les poches!

Astronautes

This entry was posted in conférence and tagged , , , . Bookmark the permalink.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *


*