Choisir scala en entreprise, est ce bien raisonnable ?

4,701 views
4,647 views

Published on

Analyse des critères de choix de Scala en entreprise. L'étude se focalise sur la pérennité, les risques et les domaines de prédilection pour l'adoption du langage

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,701
On SlideShare
0
From Embeds
0
Number of Embeds
2,115
Actions
Shares
0
Downloads
39
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

Choisir scala en entreprise, est ce bien raisonnable ?

  1. 1. Choisir Scala en entreprise, est-ce bien raisonnable ? 1 - Introduction 2 - Pérennité 3 - Domaine de prédilection 4 - Risques 5 - Retour dexpérience 6 - Conclusion 7 - Questions / Réponses04/13/12 © Normation 2011 - Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 13/04/2012
  2. 2. Introduction : présentation François ARMAND ▣ Développeur & ▣ Jeune entreprise innovante (JEI) créée en 2010 architecte ■ Expert en processus IT complexes : Co-fondateur ▣ ■ depuis 2004 Lead-architect ■ Gestion des infrastructures IT ■ Gestion des identités ■ écosystème Java ■ Maîtrise de la dérive des SI ▣ Scala depuis 2007 ▣ Éditeur de la solution Rudder ▣ Solution de gestion de la configuration et daudit des SI ▣ Serveur central : Scala© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 2/27
  3. 3. Introduction : but de la présentation ▣ Scala : choix pertinent pour en éditeur en 2012 ? ■ Hypothèse : Scala, techniquement un excellent langage □ Puissance / Expressivité □ Écosystème JVM ▣ Critères métiers : ■ Pérennité ■ Qui utilise Scala – domaines de prédilection ■ Risques ■ Clés de succès© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 3/27
  4. 4. Introduction : Scala ▣ Sortie en 2004 2006 (version 2.0) ▣ Créé par Martin Odersky ■ Père du compilateur Java moderne ■ But : faire un langage : □ Générique □ Moderne (fusion des paradigmes « objet » et « fonctionnel ») □ Utilisable en entreprise □ « Scalable Language » ▣ Ecosystème « JVM» ■ Compatibilité totale et directe avec Java© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 4/27
  5. 5. Choisir Scala en entreprise, est-ce bien raisonnable ? 1 - Introduction 2 - Pérennité 3 - Domaine de prédilection 4 - Risques 5 - Retour dexpérience 6 - Conclusion 7 - Questions / Réponses04/13/12 © Normation 2011 - Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 13/04/2012
  6. 6. Pérennité : importance ? ▣ Scala : ■ Nouvelle technologie ■ Quid du futur ? ▣ Gartner[1] : investir sur une technologie si : ■ Plateforme principale : visibilité sur 10 ans ■ Langage : visibilité sur 5 ans ■ Est-ce vrai pour Scala ?[1] : IT Programming Language Adoption and Usage Trends for 2012 and Beyond© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 6/27
  7. 7. Pérennité : histoire 2004 --2008 2004 2008 ▣ 2004-2008 : les pionniers ■ Technologie confidentielle ■ Académiques, étudiants, start-ups web ■ Applications web : Lift ■ Foursquare, Novell© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 7/27
  8. 8. Pérennité : histoire 2004 --2008 2004 2008 2009 2009 ▣ 2009 : espoir dun démarrage rapide ■ Premiers Scala Days : succès ■ Twitter choisit Scala ■ Buzz « Scala 2.8 » ▣ Mais : ■ Retard de Scala 2.8 ■ Critiques : □ « Scala est difficile » □ « Scala est pour les chercheurs »© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 8/27
  9. 9. Pérennité : histoire 2004 --2008 2004 2008 2009 2009 2010 2010 ▣ Début 2010 : ■ Version 2.8 retardée de presque 1 an ■ Nombreuses attaques / critiques □ Pas doffre commerciale □ Scala IDE recommencé pour la 3ieme fois □ Documentation □ Incompatibilités binaires ▣ Fin 2010 : structuration de Scala pour lentreprise ■ Sortie Scala 2.8 □ Versions mineures compatibles binairement ■ « Scala Solution » créée par Odersky □ Priorités : Eclipse IDE, formation Scala, accompagnement ■ Scala dans toutes les conférences du monde Java© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 9/27
  10. 10. Pérennité : histoire 2004 --2008 2004 2008 2009 2009 2010 2010 2011 2011 ▣ 2011 : accélération ■ Projet de R&D européen □ 2.3 M€ □ « Simplifier les problématiques de traitements parallèles » ■ Structuration de loffre commerciale : TypeSafe □ 3 M$ □ Fournir une pile logicielle et une offre commerciale pour les entreprises □ Akka : programmation concurrente par acteurs □ Play ! : un framework web déjà encensé dans lécosystème JVM ■ Toujours plus de sociétés choisissent Scala© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 10/27
  11. 11. Pérennité : offres demplois© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 11/27
  12. 12. Pérennité : conclusion 2004 --2008 2004 2008 2009 2009 2010 2010 2011 2011 ?? ▣ Offre commerciale crédible ▣ Offre demplois en forte hausse ▣ Thoughtworks Radar[1] ■ Scala : recommandation ▣ Gartner[2] : 2012, 4 catégories de langage à suivre : ■ 1/ Open-sources, 2/ sur une VM, 3/ dynamiques, 4/ fonctionnels ■ Scala cité Scala à 5 ans : OK[1]  http://www.thoughtworks.com/articles/technology-radar-january-2011#Languages :[2]  IT Programming Language Adoption and Usage Trends for 2012 and Beyond© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 12/27
  13. 13. Choisir Scala en entreprise, est-ce bien raisonnable ? 1 - Introduction 2 - Pérennité 3 - Domaine de prédilection 4 - Risques 5 - Retour dexpérience 6 - Conclusion 7 - Questions / Réponses04/13/12 © Normation 2011 - Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 13/04/2012
  14. 14. Domaine de prédilection ▣ Type dentreprise : ■ Web/Social : Linkedin, Salesforce, Remember The Milk, Tumblr, QWiki… ■ Cloud : Amazon, Heroku, VMWare, GridGain… ■ Media : Guardian, Zeebox, Sony, … ■ Finance : Wealthfront, EDF Trading, UBS (banque Suisse), Morgan Stanley… □ Détails confidentiels ▣ Problématiques : ■ Applications « serveur » ■ « Big Data » ■ Traitements parallèles ■ Traitements concurrents ■ « Temps réel »© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 14/27
  15. 15. Choisir Scala en entreprise, est-ce bien raisonnable ? 1 - Introduction 2 - Pérennité 3 - Domaine de prédilection 4 - Risques 5 - Retour dexpérience 6 - Conclusion 7 - Questions / Réponses04/13/12 © Normation 2011 - Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 13/04/2012
  16. 16. Risque : ressources humaines ▣ Zeebox : « hot developers use Scala » ■ Facile de trouver 10 experts internationaux ■ Impossible dexternaliser une équipe de 100 personnes ▣ Sociétés de consulting spécialisées Scala ■ Commencent seulement à apparaitre ▣ En France (Région Parisienne) ? ■ Une poignée dindépendants ■ Quelques cabinets de consulting □ Xebia, Octo Technologie, … □ Compter 800/1000 €/jour (ou plus!)© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 16/27
  17. 17. Risque : « Scala is hard » ▣ Critique majeure contre Scala ▣ Principalement issue de développeurs Java ■ Peu de problèmes chez □ les nouveaux développeurs □ Les développeurs venant dautres horizons ▣ Axes dinterprétation : ■ Technologie nouvelle □ Manque de convention □ Outillage non mature ■ Issue dun milieu académique ■ Force les développeurs confirmés à repartir de zéro Encadrement essentiel© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 17/27
  18. 18. Risques : maturité ▣ Outillages ■ Compilateur lent □ Au moins un ordre de magnitude par rapport à Javac ■ IDE moyens □ Énormes progrès depuis 18 mois □ Mais encore très loin de Visual C# ou des IDE Java ▣ Incompatibilités binaires ■ Entre les versions majeurs Équipe capable de dépasser ces irritations© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 18/27
  19. 19. Choisir Scala en entreprise, est-ce bien raisonnable ? 1 - Introduction 2 - Pérennité 3 - Domaine de prédilection 4 - Risques 5 - Retour dexpérience 6 - Conclusion 7 - Questions / Réponses04/13/12 © Normation 2011 - Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 13/04/2012
  20. 20. Retour dexpérience : contexte ▣ Rudder : gestion de configuration des SI ■ Console de gestion centrale : Scala ■ Agent de configuration sur les nœuds (serveurs) : C ▣ 5 années/homme de développement ■ ~35 000 lignes de Scala ▣ Début en Java... ■ Puis une migration rapide, totale vers Scala □ Trop frustrant et improductif de revenir à Java ▣ Seulement deux développeurs à temps plein ■ Dont un fait du Scala depuis +5 ans© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 20/27
  21. 21. Retour dexpérience : résultat ▣ Communauté dynamique, brillante, parfois rugueuse ▣ Développement Scala : ■ Nombreux petits ennuis : □ IDE Éclipse, compilateur, comptabilité binaire ■ Largement compensés par : □ Productivité décuplée ◉ Possibilité décrire des algorithmes sans complexité accidentelle ◉ Collection API ! □ Refactorings « magiques » ◉ 2 refactorings denviron 20 000 lignes de code ◉ Fonctionnent du premier coup (presque) ▣ Problèmes RH ? ■ Peu de recul □ Uniquement stagiaires / alternants □ Aucune intégration de développeur expérimenté ■ Postulants : excellents profils ■ Aucun problème de montée en compétence sur Scala© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 21/27
  22. 22. Choisir Scala en entreprise, est-ce bien raisonnable ? 1 - Introduction 2 - Pérennité 3 - Domaine de prédilection 4 - Risques 5 - Retour dexpérience 6 - Conclusion 7 - Questions / Réponses04/13/12 © Normation 2011 - Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 13/04/2012
  23. 23. Conclusion : clés de succès ▣ Vouloir construire une équipe passionnée ■ Attirer des talents ▣ Avoir un champion Scala ■ Porteur de la technologie □ Mentor : montée en compétence des autres membres □ Garant des bonnes pratiques ▣ Construire une application « client/serveur » □ Logique complexe □ Massivement parallèle et/ou concurrente ▣ Pouvoir et vouloir se fondre dans lécosystème JVM ■ Le moins risqué des « nouveaux » langages JVM ■ Avec tous les avantages de lécosystème JVM ■ Et ses inconvénients© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 23/27
  24. 24. Choisir Scala en entreprise, est-ce bien raisonnable ? 1 - Introduction 2 - Pérennité 3 - Domaine de prédilection 4 - Risques 5 - Retour dexpérience 6 - Conclusion 7 - Questions / Réponses04/13/12 © Normation 2011 - Tous droits réservés – Document strictement confidentiel. Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 13/04/2012
  25. 25. Contact ▣ Nos coordonnées générales : □ Téléphone : 01 83 62 26 96 □ Fax : 01 83 62 29 38 □ Email : contact@normation.com □ Site web : http://www.normation.com ▣ Votre interlocuteur : François ARMAND – Lead Architect far@normation.com© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 25/27
  26. 26. Ressources ▣ David Pollak : critique de Scala ■ http://goodstuff.im/yes-virginia-scala-is-hard ■ http://goodstuff.im/scala-use-is-less-good-than-java-use-for-at-l ▣ Convaincre son patron dutiliser Scala : http://scala-boss.heroku.com ▣ Interview du fondateur Zeebox : ■ http://www.scala-lang.org/node/11428 ▣ ScalaDays 2012 : ■ http://days2012.scala-lang.org/ ▣ Étude Garner : ■ http://www.gartner.com/DisplayDocument?id=1814916© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 26/27
  27. 27. Exemples de frameworks Scala ▣ Web : ■ Lift-framework http://liftweb.net ■ Play ! http://www.playframework.org ▣ Acteurs (programmation concurrente) : ■ Akka : http://akka.io ▣ Test (test driven, specification, automatique) ■ http://etorreborre.github.com/specs2 ■ http://code.google.com/p/scalacheck© Normation 2011 - Tous droits réservés – Document strictement confidentiel.Il ne peut être utilisé, reproduit ou divulgué sans autorisation écrite préalable. 27/27

×