Choisir scala en entreprise, est ce bien raisonnable ?
-
Upload
normation -
Category
Technology
-
view
4.155 -
download
3
description
Transcript of Choisir scala en entreprise, est ce bien raisonnable ?
04/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
Choisir Scala en entreprise,est-ce bien raisonnable ?
1 - Introduction
2 - Pérennité
3 - Domaine de prédilection
4 - Risques
5 - Retour d'expérience
6 - Conclusion
7 - Questions / Réponses
© 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
Introduction : présentation
▣ Développeur & architecte ■ depuis 2004
■ écosystème Java
▣ Scala depuis 2007
▣ Jeune entreprise innovante (JEI) ■ créée en 2010
▣ Expert en processus IT complexes :■ Gestion des infrastructures IT■ Gestion des identités■ Maîtrise de la dérive des SI
▣ Éditeur de la solution Rudder
▣ Solution de gestion de la configuration et d'audit des SI
▣ Serveur central : Scala
Co-fondateurLead-architect
François ARMAND
© 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
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. 4/27
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
04/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
1 - Introduction
2 - Pérennité
3 - Domaine de prédilection
4 - Risques
5 - Retour d'expérience
6 - Conclusion
7 - Questions / Réponses
Choisir Scala en entreprise,est-ce bien raisonnable ?
© 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
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. 7/27
Pérennité : histoire
▣ 2004-2008 : les pionniers ■ Technologie confidentielle
■ Académiques, étudiants, start-ups web
■ Applications web : Lift
■ Foursquare, Novell
2004 - 20082004 - 2008
© 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
Pérennité : histoire
▣ 2009 : espoir d'un 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 »
2004 - 20082004 - 2008 20092009
© 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
Pérennité : histoire
▣ Début 2010 : ■ Version 2.8 retardée de presque 1 an
■ Nombreuses attaques / critiques□ Pas d'offre commerciale□ Scala IDE recommencé pour la 3ieme fois□ Documentation□ Incompatibilités binaires
▣ Fin 2010 : structuration de Scala pour l'entreprise■ 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
2004 - 20082004 - 2008 20092009 20102010
© 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
Pérennité : histoire
▣ 2011 : accélération■ Projet de R&D européen
□ 2.3 M€□ « Simplifier les problématiques de traitements parallèles »
■ Structuration de l'offre 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
2004 - 20082004 - 2008 20092009 20102010 20112011
© 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
Pérennité : offres d'emplois
© 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
Pérennité : conclusion
▣ Offre commerciale crédible
▣ Offre d'emplois 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
2004 - 20082004 - 2008 20092009 20102010 20112011 ??
[1] http://www.thoughtworks.com/articles/technology-radar-january-2011#Languages :[2] IT Programming Language Adoption and Usage Trends for 2012 and Beyond
04/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
1 - Introduction
2 - Pérennité
3 - Domaine de prédilection
4 - Risques
5 - Retour d'expérience
6 - Conclusion
7 - Questions / Réponses
Choisir Scala en entreprise,est-ce bien raisonnable ?
© 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
Domaine de prédilection
▣ Type d'entreprise :■ 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 »
04/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
1 - Introduction
2 - Pérennité
3 - Domaine de prédilection
4 - Risques
5 - Retour d'expérience
6 - Conclusion
7 - Questions / Réponses
Choisir Scala en entreprise,est-ce bien raisonnable ?
© 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
Risque : ressources humaines
▣ Zeebox : « hot developers use Scala »■ Facile de trouver 10 experts internationaux
■ Impossible d'externaliser 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 d'indé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. 17/27
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 d'autres horizons
▣ Axes d'interprétation :■ Technologie nouvelle
□ Manque de convention □ Outillage non mature
■ Issue d'un 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. 18/27
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
04/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
1 - Introduction
2 - Pérennité
3 - Domaine de prédilection
4 - Risques
5 - Retour d'expérience
6 - Conclusion
7 - Questions / Réponses
Choisir Scala en entreprise,est-ce bien raisonnable ?
© 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
Retour d'expé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. 21/27
Retour d'expé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 d'environ 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
04/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
1 - Introduction
2 - Pérennité
3 - Domaine de prédilection
4 - Risques
5 - Retour d'expérience
6 - Conclusion
7 - Questions / Réponses
Choisir Scala en entreprise,est-ce bien raisonnable ?
© 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
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
04/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
1 - Introduction
2 - Pérennité
3 - Domaine de prédilection
4 - Risques
5 - Retour d'expérience
6 - Conclusion
7 - Questions / Réponses
Choisir Scala en entreprise,est-ce bien raisonnable ?
© 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
Contact▣ Nos coordonnées générales :
□ Téléphone : 01 83 62 26 96□ Fax : 01 83 62 29 38□ Email : [email protected]□ Site web : http://www.normation.com
▣ Votre interlocuteur :
François ARMAND – Lead Architect
© 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
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 d'utiliser 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. 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