Scala.IO logo

The Scala and FPL friendly event in Paris!

October 24th and 25th, 2013. Paris, France

Nos sponsors gold ont accepté de répondre à quelque questions autour de Scala et de Scala.IO. Après une courte présentation de chacun, ils partagent avec vous leur perception de l’écosystème Scala, de son potentiel commercial, des forces et des faiblesses du langage. Bonne lecture :)

Xebia Ebiznext Ebiznext

Xebia : Luc Legardeur

Bonjour, est-ce que vous pouvez vous présentez, vous et votre société pour nos lecteurs?

Bonjour, je suis Luc Legardeur, président de Xebia. Xebia est une société qui a été créée en 2001 en Hollande. La filiale française a vu le jour en 2004. Nous sommes un cabinet de conseil spécialisé dans les technologies Big Data, Cloud, Java/JEE, Mobile et Web ainsi que dans les méthodes agiles. Nous recrutons des consultants passionnés, qui ont fait le choix d’une carrière technique. Avec nos clients, nous construisons des partenariats sur le long terme et délivrons du travail de haute qualité.

La mission de Xebia est d’être une autorité de la sphère Java et de l’écosystème agile. Cette mission, associée à notre système de valeurs, est le ciment des 300 employés de Xebia à travers le monde. Les valeurs de Xebia sont :

  • people first,
  • customer intimacy,
  • sharing knowledge,
  • quality without compromise.

Pourquoi avoir choisi de sponsoriser Scala.IO ?

Comme expliqué plus haut, le partage de connaissance fait partie de nos valeurs. Nous encourageons le partage en interne et en externe (au travers de conférences notamment). Plusieurs Xebians sont intéressés par la programmation fonctionnelle et Scala en particulier. Nous avons voulu soutenir ces initiatives (trois talks de consultants français ont été sélectionnés et trois de consultants hollandais pour cette première de Scala.IO) en sponsorisant cette première édition de Scala.IO.

Quelle est votre relation avec Scala : Est-il mis en œuvre dans vos projets ? si oui comment y a-t-il été introduit et depuis combien de temps ?

Oui, nous avons un projet chez un de nos clients avec Scala. Un de nos consultant a poussé le langage afin de répondre à des besoins précis. La mission a démarré cet été.

Quelles sont les facettes du langage que vous considérez comme des avantages décisifs ?

Scala est un bon complément de Java, il permet au développeur de choisir son paradigme (orienté objet ou fonctionnel) selon le(s) problème(s) qui se présente(nt) sur le projet. La communauté Scala est active et en croissance. De plus, les développeurs Java qui s’essaient à Scala ont tendance à vouloir ensuite travailler sur des projets Scala.

Avez vous un retour d’expérience Scala a partager avec les lecteurs ?

Tous les mois, nous organisons une journée de partage de connaissance interne avec tous les consultants (XKE). Xavier Bucchiotty (speaker à Scala.io) et Jean Helou (organisateur et anciennement consultant chez Xebia) ont animé tous les mois des sessions autour de Scala (découverte ou ateliers plus pointus) depuis environ un an.

S’il y avait quelque chose faire pour améliorer Scala, son écosystème ou la communauté, ce serait quoi ?

Plus de communication sur les projets réussis (par exemple www.quialemeilleurservice.com par Axa).

Comment voyez vous le futur de Scala dans 3, 5, 10 ans ;)

Bonne question…

Est ce que vous recrutez des développeurs Scala ?

Nous recrutons de très bon développeurs Java qui ont une affinité pour Scala.

Merci, quelque chose à ajouter ?

Non, merci à vous.


Ebiznext

Bonjour, est-ce que vous pouvez vous présentez, vous et votre société pour nos lecteurs?

ebiznext est une société de 35 consultants et une équipe administrative et commerciale de 2 personnes. Les consultants sont répartis de manière égalitaire sur les plateformes .NET et Java. La pensée perturbatrice (disruptive thinking) fait partie intégrante de la culture d’entreprise et c’est en partie pour cela que nous sommes aujourd’hui présents à l’événement ScalaIO.

Pourquoi avoir choisi de sponsoriser Scala.IO ?

Les organisateurs de Scala.IO de part leurs antécédents nous ont tout de suite inspiré confiance. Nous n’avons donc pas hésité dès les premiers jours et avant d’avoir connaissance de l’excellence des premiers conférenciers retenus à sponsoriser l’événement. Nous prévoyons de renforcer nos équipes de consulting et notre activité d’édition de logiciel naissante qui se fait en partenariat avec un acteur clef du marché. Nous cherchons donc à aller à la rencontre des futurs talents Scala et la thématique de l’événement ScalaIO s’y prête complètement.

Quelle est votre relation avec Scala : Est-il mis en oeuvre dans vos projets ? si oui comment y a-t-il été introduit et depuis combien de temps ?

Dans le cadre de nos forfaits, nous nous sommes tournés depuis 2008 vers les langages alternatifs sur la JVM. Pendant 4 ans de 2008 à 2012, nos développements étaient pour la plupart réalisés au dessus du framework Grails. Depuis 2 ans, nos prestations au forfait ont progressivement été réalisées en Scala pour répondre essentiellement à un objectif de productivité et de performance.

Scala a été introduit au sein d’ebiznext simultanément dans le cadre de la réalisation de deux sites à forte audience, un premier projet d’analyse de données (Big Data Analytics) et un deuxième projet d’agrégation de services pour lesquels le temps de réponse était le critère de choix du client.

Comparé à l’excellent framework fork/join de la Java7, la facilité de mise en œuvre et scalabilité multi JVM d’AKKA ont remporté notre adhésion et ont été décisifs dans le succès de ces deux projets.

Quelles sont les facettes du langage que vous considérez comme des avantages décisifs ?

Si on s’en tient strictement au langage, les facettes du langage qui ont alimenté nos discussions le plus souvent sont dans l’ordre décroissant:

  • Les cases classes : Pour le gain de productivité
  • Les types structurels (mot clef type) et Les implicites (base du support des type classe en Scala) : Pour l’extensibilité sans adhérence AKKA pour la parallélisation des traitements
  • Les mixins : Pour la composabilité des classes
  • L’inférence de type : Pour la lisibilité du code
  • L’intégration de la programmation objet et fonctionnelle : Pour la transition sans rupture
  • Les macros et la flexibilité de la syntaxe : Pour la création de DSL
  • L’éternelle compatibilité avec Java et la JVM : Pour la pérennité de l’investissement de nos clients Au langage, j’ajouterais l’écosystème Scala que l’on peut découvrir lors des workshops de la conférence ScalaIO

Avez vous un retour d’expérience Scala a partager avec les lecteurs ?

J’ai envie de parler ici des difficultés rencontrées dans l’exécution de projets Scala et je citerais dans l’ordre:

  • Le nombre limité de développeurs Scala sur la place parisienne a conduit à des coûts unitaires de production importants. Pour résoudre ce problème, nous avons depuis un an lancé une campagne soutenue de formation des consultants ebiznext à la programmation fonctionnelle en général et à Scala en particulier.
  • L’expressivité du langage Scala peut faire croire que la syntaxe est difficile d’accès.
  • Le manque de maturité des IDE a été un handicap sur les premiers projets

S’il y avait quelque chose à faire pour améliorer Scala, son écosystème ou la communauté, ce serait quoi ?

L’écosystème Scala est encore naissant, les obstacles majeurs à l’adoption du langage dans les entreprises de l’économie réelle sont de notre point de vue:

  • L’incompatibilité binaire entre les versions majeures du langage et qui surviennent tous les deux ans : Cela est certainement louable et nous passons très peu de temps à migrer une application (de l’ordre de la journée) mais les clients restent réservés à ce sujet.
  • Les environnements de développement (Scala-IDE / IntelliJ) peinent à suivre (pas de support des quasiquotes, options de refactoring limitées, lenteur de l’IDE, debugging dans les closures aléatoire).
  • Les temps de compilation trop important (malgré fsc et sbt). Un compilateur Scala réalise il est vrai beaucoup plus de travail qu’un compilateur Java et ceci explique probablement cela. Il n’en reste pas moins qu’une amélioration des temps de compilation serait bienvenue.

Comment voyez vous le futur de Scala dans 3, 5, 10 ans ;)

Bon, si on peut se permettre de parler de ses désirs même s’ils ne seront pas écoutés alors allons-y, ils seront sans doute au moins lus  De mon point de vue, le langage ne doit pas bouger trop vite au risque de le tuer dans l’œuf. Par contre les styles de programmation sur lesquels des travaux ont lieu et qui retiennent notre attention sont :

  • Horizon 3 ans : Type dependent programming comme dans Agda. La présentation par Le Professeur Odersky de DOTY il y a quelques semaines semble indiquer que son équipe travaille sur ce sujet.
  • Horizon 5 ans : La mise en œuvre de DSL qui permettent implicitement la parallélisation des traitements. Le framework Delite du Parallel Pervasive Lab en est un exemple.
  • Horizon 10 ans : La programmation logique (prolog like) qui se marie parfaitement à la programmation parallèle. Couplée aux DSL, cela pourrait (IMHO) apporter des gains de productivité significatifs.

Est ce que vous recrutez des développeurs Scala ?

Oui nous recrutons des développeurs Scala et c’est une des raisons principales de notre présence à l’événement ScalaIO. Notre stratégie de prestation au forfait et notre activité d’édition étant résolument tournée vers Scala, nous prenons l’engagement de former nos consultants à penser parallèle et à la programmation fonctionnelle et ce afin qu’il soient opérationnels dans les 12 mois qui suivent leur arrivée.

Merci, quelque chose à ajouter ?

Dans le monde java quelque peu vieillissant, votre équipe au travers d’actions comme l’événement ScalaIO, contribue à promouvoir les langages alternatifs et cela apporte une bouffée d’oxygène dont nous avons bien besoin. Merci à vous.


Ebiz : Stéphane Landelle

Bonjour, est-ce que vous pouvez vous présenter, vous et votre société pour nos lecteurs?

Bonjour. Je suis Stéphane Landelle, et je suis le directeur technique d’eBiz. eBiz est une société de services basée en région parisienne. Le gros de notre activité se concentre sur Java, mais nous travaillons également autour d’Android et bien sûr de Scala.

Je suis à l’origine du projet open-source Gatling, un injecteur de charge développé en Scala, et sponsorisé par eBiz !

Pourquoi avoir choisi de sponsoriser Scala.IO ?

Tout d’abord, parce que nous apprécions de travailler avec Scala et son écosystème et que nous voulons faire partie du mouvement qui va le promouvoir. Cela s’inscrit parfaitement dans la continuité du partenariat que nous avons conclu en 2013 avec Typesafe.

Ensuite, parce que Scala.IO est une excellente occasion de rencontrer les développeurs Scala qui ont été les premiers à adopter Gatling et que leur feedback est important pour nous.

Quelle est votre relation avec Scala : Est-il mis en œuvre dans vos projets ? Si oui comment y a-t-il été introduit et depuis combien de temps ?

Scala est arrivé chez nous à travers Gatling. Je recherchais une solution pour développer une architecture asynchrone. Je me suis donc rapidement tourné vers le modèle des acteurs, et mes benchmarks m’ont poussé vers Akka. La version 2 était alors à l’étude, l’avenir de l’API Java était inconnu, nous nous sommes donc lancés en Scala.

Depuis quelques temps, nous commençons à travailler avec Play, en interne et chez nos clients.

Quelles sont les facettes du langage que vous considérez comme des avantages décisifs ?

Un langage expressif, fortement et statiquement typé, un écosystème en pleine effervescence drivé par des gens brillants et passionnés.

Avez vous un retour d’expérience Scala à partager avec les lecteurs ?

Je pense que nous aurions été incapables de développer Gatling en Java. Scala est un langage beaucoup plus expressif, qui permet d’implémenter des algorithmes de manière beaucoup plus concise tout en gardant un code lisible et maintenable. Cela nous a permis de réaliser nos erreurs de conception, là où en Java, nos cerveaux auraient été noyés dans les lignes de code.

Ensuite, disposer d’un langage avec un système de type fort nous facilite grandement les refactorings. Nous avons régulièrement procédé à des big bangs dans le code de Gatling 2 et à chaque fois, le code, une fois qu’il recompilait, était de nouveau fonctionnel.

Pour finir, Akka est un moteur à la fois très puissant, simple d’utilisation, et très souple. Vous pouvez travailler de manière typée ou non-typée, de manière stateless ou stateful, utiliser des Futures ou uniquement des acteurs…

S’il y avait quelque chose faire pour améliorer Scala, son écosystème ou la communauté, ce serait quoi ?

Beaucoup de choses ont déjà été dites et écrites sur ce sujet, et par des gens très pointus.

Pour ma part, dans ma liste au Père Noël, j’aimerais que Play adresse mieux les applications simples : un meilleur support des formulaires et de leur validation, une gestion plus aisée des erreurs dans les templates, une gestion de la sécurité en standard…

Comment voyez vous le futur de Scala dans 3, 5, 10 ans ;)

Nous sommes à une phase charnière, tout dépend des choix de Typesafe. Soit Scala se stabilise, introduit une compatibilité ascendante plus longue et peut se démocratiser, soit Scala reste un langage de niche à destination des start ups et des entreprises pointues techniquement. Dans le second cas, je crains que le financement qui a permis de donner un coup de boost à Scala et son écosystème depuis la création de Typesafe ne se tarisse.

Est ce que vous recrutez des développeurs Scala ?

Bien sûr ! Et pas que : les passionnés d’Android et de Java/JEE trouveront chez eBiz un écosystème où exprimer leur talent.

Merci, quelque chose à ajouter ?

Nous organisons les 22 et 23 janvier 2014 une formation « Fast Track to Scala », l’occasion pour celles et ceux ne s’étant pas encore formés de se jeter à l’eau.