La 5ème conférence de la communauté Scala a eu lieu du 16 au 18 juin dernier à Berlin. Pendant 3 jours, plus de 850 personnes ont pu suivre une trentaine de conférence.
L’ouverture le lundi après-midi par Martin Odersky permet d’apprendre quelques chiffres sur le langage et la plateforme. Tout d’abord, Scala fête ses 10 ans. La communauté est estimée à 300 000 développeurs actifs environ (à comparer aux 10 millions de développeurs Java). Scala est un langage de plus en plus populaire, surtout depuis 2 ans. Le nombre de projets et de clients, selon TypeSafe, est en accélération, ce qui confirme l’impression que nous avons, du côté de la communauté des développeurs Java. Le cours « Principes de la programmation fonctionnelle avec Scala » a été suivit par plus de 100 000 étudiants, avec l’un des nombres les plus élevés de complétion (source de l’info ici)
La conférence se déroule dans un cinéma, dans l’ancien quartier Berlin-Est, en plein sur l’allée Karl Marx (!!). Dans des salles confortables de cinéma « à la Devoxx », les sessions ont toutes été filmées. Cela permettra à chacun de revoir les sessions sur Parleys.com. La conférence s’est ouverte le lundi après-midi, c’est plutôt original. Lundi 18h00, il y avait Allemagne-Portugal. Typesafe et Trifork, les 2 organisateurs principaux, avaient organisé un barbecue en plein air, avec saucisse et bière allemande. Bonne ambiance 🙂
Mardi
Voici les conférences que j’ai vu :
– Quote or be Quoted ROTI = 1/10
– Good to great: IntelliJ and Scala ROTI = 4/10
– Without Past and Present ROTI = 1/10
– Play Framework, la Team ROTI = 6/10
– Resilient Applications with Akka Persistence ROTI=5/10
– Writing Reactive Application for Fun ROTI=7/10
– Delicious Play recipes for the Real Word ROTI=10/10
ROTI : Return on Time invested.
Clairement, j’ai pas trouvé intéressant/pédagogique une partie des présentations. Soit le speaker est mauvais, mal préparé, complètement obscur… Soit le sujet intéresse 10 développeurs dans le monde. Il manque dans l’agenda un indicateur du public visé : Beginner, Intermediate or Expert.
Vous avez vu cette photo ? A la sortie de chaque salle, les bénévoles vous proposent de voter directement pour le talk. C’est une idée qui sera à Devoxx France 2015, j’ai trouvé cela simple, génial, et ça fonctionne.
Quelques informations sur Play! Framework
Mes 3 talks de la journée finalement seront tout d’abord la présentation de la roadmap de Play par l’équipe au complet. Pour vous donner un peu d’information, Play! Framework est maintenant piloté par Typesafe. James Roper est le chef de projet et développeur principal. Christopher Hunt est plus spécialisé sur la partie Web. Rich Dougherty est spécialisé sur la partie performance et serveur. Enfin Peter Vlugter vient de l’équipe Akka, et a rejoint récemment l’équipe Play.
Ce qu’il faut bien comprendre c’est que Play est maintenant complètement piloté par Typesafe. Les équipes de Zengularity (Guillaume Bort, Sadech Drobi) ont passé la main, bien qu’ils continuent à contribuer sur le projet de temps en temps. Play est plus ou moins développé en Australie et en Nouvelle-Zélande. A noter aussi qu’il n’y avait pas de personnes de Zengularity à Berlin.
Play 2.3 marque le passage à Activator, avec une console graphique vraiment sympa, que j’ai testé. On retrouve d’ailleurs un peu l’esprit de Play 1.x avec sa console (pour les tests par exemple). Activator est un beau projet qui permet aux débutants de démarrer rapidement avec Play 2.x. Un bon nombre de templates vous donneront un coup de main pour vous lancer.
Play 2.4 est prévu pour la fin 2014 d’après le document de Roadmap. On note que Play ne proposera pas de framework d’IoC. En Scala il est déjà assez simple de faire de l’IoC (Cake-Pattern…) et des solutions standards (Guice) permettent aussi d’utiliser cette approche.
- Improved deployment options - Play becomes opinionated in documentation and built in support about dependency injection - Play uses a particular dependency injection technology internally by default - Experimental support for running Play on akka-http - Experimental support for handling IO in Java and Scala using reactive streams - Play docs/templates prefer Slick over anorm - Play docs/templates prefer JPA over ebean - Pull anorm/ebean support out into separate modules in GitHub playframework repo - More Routing Options (?) - Make Play routes compiler its own module and make it optional - Provide/document optional support for a Scala routing DSL - Provide/document optional support for JAXRS
Play 3.0 marquera une nouvelle rupture, avec peut-être l’abandon des Iteratee/Enumerator/Enumeratee. Tout d’abord à titre personnel, j’aurai bien aimé voir ScalaZ Stream. J’ai trouvé que la sémantique et le code sont plus facile à appréhender. James revient sur le concept en disant : « c’est simple, moi j’ai travaillé 4 semaines pour bien les maîtriser… donc en fait c’est compliqué :-)… ».
On notera aussi l’abandon du support de Java 7 pour Play 3.0, quoique cela reste encore à confirmer. Pour ceux qui ne sont pas trop fan de Scala, vous pourrez donc rapidement utiliser Play 3.0 + Java 8 pour votre plus grand bonheur.
Une excellente présentation pour terminer la journée
J’ai terminé ce mardi avec une superbe bonne présentation, et surtout un top speaker : Nilanjan Raychaudhuri. Je vous le dis maintenant entre nous : je vais tout faire pour que ce speaker vienne à Devoxx France 2015. Il vit en plus maintenant à Berlin. C’est l’auteur du livre « Scala in Action » chez Manning, un bon livre orienté pratique, lorsque l’on souhaite construire des applications d’entreprise.
C’est vraiment le type de présentation que j’aime : une partie émotionnelle (on se marre bien) et un contenu au top (le gars est super bon). La présentation est simple : c’est des recettes de cuisine avec Play! Framework. Comment faire ceci ? Comment créer l’équivalent d’un portail, charger de façon asynchrone différents contenus, et streamer vers un navigateur ? Ce gars était l’un des consultants de Typesafe chez LinkedIn. Autant dire qu’il connaît bien le sujet. Je vous le recommande sur Parleys si vous souhaitez apprendre quelques astuces sur Play Framework.
La journée du mardi s’est terminée tard, dans des restaurants, puis un bar, puis des rencontres et des discussions, bref un petit air de Devoxx, sauf qu’il faisait un bon 23 degrès dehors.
Mercredi
J’attaque la journée par l’excellente keynote de Chad Fowler. Avec plus de 360 000 followers sur Twitter, cela vous donne une idée de la popularité de Chad. Issu de la communauté Ruby et Rails, il a organisé RailsConf, il écrit régulièrement des articles passionnants sur son blog et c’est un chic type.
Et donc il a fait une keynote.
Et donc j’ai juste pris une claque. Vraiment bien. Dans les 10 meilleures keynotes que j’ai vu (et j’en ai vu des keynotes de m…). Le sujet ? Le code Legacy. Mais en fait nous, les développeurs.
Vous arrivez sur ce projet pour ce client. Le premier jour est douloureux : vous découvrez une grosse application Legacy et votre boulot (si vous l’acceptez) c’est de travailler sur ce fumier. Et que je râle, et que je critique le code des autres, et que je me marre en regardant les bouses qui trainent… Hop hop hop je mets du Maven pour simplifier (*rires*) et je mets du Spring aussi pour pouvoir faire de l’IoC (*rires*) et je peux faire pleins de tests de malade avec des Mock aussi (*rires*). Ivre, je fais même du JSF (*…. silence dans la salle … on rigole pas avec JSF…. *).
Une application Legacy, c’est une appli qui tourne toujours. Et ça, c’est peut-être déjà pas le cas de pas mal de code que vous avez écrit non ? (*rires gênés*). Elle devait plutôt bien être écrite « à l’époque » non ? Legacy finalement, c’est aussi héritage. Quoique l’on en dise, lorsque les développeurs de cette application l’ont écrite, ils avaient utilisés les meilleurs technologies du moment non ? Genre JSF ? (*rires x10*). Et votre superbe application AngularJS, est-ce qu’elle passera le cap des 2 ans ? Comment sera vu votre application, votre code dans 3 ans ?
Cela m’a personnellement super inspiré. Y’a de quoi faire une keynote en Français, et revenir sur en effet sur le métier de développeur. Sommes-nous des archéologues ? Est-ce que l’exploration du code s’apparente à l’étude des carottes glaciaires ? JSF va-t-il passer le cap des 10 ans ? Autant de questions qui m’inspirent déjà pleins d’articles pour le Touilleur Express.
Arrête de troller sur JSF merde
Après une keynote où en fait, Chad n’a jamais parlé de JSF, nous attaquons une journée marathon avec pas mal de présentations. Je sais pas si c’est l’effet de la soirée, mais j’ai eu plus de chances dans mes choix de sujets.
J’attaque par une présentation sympa de Shadaj Laddad « Serious Fun with Scala ». Le speaker commence par présenter un peu de biologie, et nous parler de séquence génomique, d’ARN, de protéine, bref un truc pas super fun, mais qui s’écoute. Où veut-il en venir ? Il montre ensuite du code, du Scala sympa en effet, et assez bluffant. Il nous montre une application Android avec un serveur en Scala qu’il a codé pour ses copains. Et à l’école, c’est une vraie star. Ah oui j’ai oublié de vous dire : le speaker a 14 ans. Oui mon chéri. Il fait du scala et il a 14 ans. Et il n’a pas, semble-t-il, la tête d’un génie. Juste un gosse qui a un père geek, et qui aime bien coder « pour s’amuser ». Il fait donc du Scala. Moi ce que j’en dis c’est que dans quelques années, des enfants de 14 ans qui font du Scala, il y en aura des centaines. J’en suis sûr. Le temps de comprendre si cela peut arriver, et oui, en fait ça va arriver.
Après une autre présentation ennuyante sur un sujet mal maîtrisé, j’ai donc zapé pour prendre une pause déjeuner avec d’autres Français. Nous avons ensuite repris avec une bonne conférence : »Futures and Async, when to use which?« .
Je triche : j’ai eu Philipp Haller pendant 2 jours avant la conférence, comme formateur sur Akka, je savais que le contenu serait intéressant. Impression confirmée.
Philipp est l’un des 5 plus gros commiters sur Scala. Passé par l’EPFL, un PhD à Standford, il est maintenant chez Typesafe. Et il travaille sur ce qui est Futures et Async. La présentation est sans doute l’une des plus importantes pour bien comprendre Scala. Il déroule les cas d’utilisations courants, et aussi les pièges simples, qu’il faut éviter. Une for-comprehension avec des Futures ? Et bien vos appels seront séquencés (ce qui peut être souhaitable). Avec async, et du code simple, on comprend vite que Scala est à des années-lumières de Java 8. Cela va continuer à pousser fort, et papy Java va se faire un peu chahuter.
Encore un autre point qui est flagrant lorsque l’on regarde les Bios des speakers : Doctorant, universitaire, PhD… EPFL, Standford… Je sais pas si c’est moi, mais j’ai l’impression que les joueurs de l’équipe Scala ne sont pas des manches. Cela donne aussi une idée du potentiel que ces cerveaux nous offrent, à nous, développeurs d’application. Suivre une présentation de Philipp c’est presque prendre un cours. On est content. Bon, on a pas tout compris, mais on est content.
Oui, l’air de Berlin fait du bien. Croyez-moi, j’en suis presque à me faire graver Scala sur le bras. C’est vous dire…
0 no like
Hello,
Merci pour le rappel sur Future vs Async. Je crois qu’ils parlaient deja de Async dans le dernier cours FRP sur Coursera mais disaient que c’était experimental encore…
Au passage, je sais pas trop si ça a un rapport car j’ai encore eu le temps d’assimiler tout ça mais ces Async me font penser a TaskJS (http://taskjs.org/), du moins au niveau de la syntaxe pas toi?
Au passage, j’aimerais bien savoir pourquoi la présentation Akka Persistence est a 5/10. Je trouve l’approche Event Sourcing / CQRS tres élégante pour un programmeur fonctionnel même si la mise en pratique n’est pas forcement evidente. Pourquoi cette note si basse? Pas convaincu ou probleme de speaker?
Par rapport à la présentation de Matthias Nehlsen, est-ce qu’il a mentionné le framework javascript React? Je l’utilise depuis quelques mois deja et c’est vraiment un plaisir pour dev des applis front. Beaucoup plus facile de raisonner contrairement a JQuery, Backbone et Angular. Il y a en plus la lib Om pour Clojurescript qui a l’air vraiment pas mal dans le concept. Tu as ton mot a dire pour Scala.io alors si je peux suggérer un speaker en rapport avec Scala et JS: David Nolen: d’apres quelques discussions IRC Om pourrait être portable en ScalaJS.