Choisir scala en entreprise, est ce bien raisonnable ?

27
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

description

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

Transcript of Choisir scala en entreprise, est ce bien raisonnable ?

Page 1: 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

Page 2: 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. 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

Page 3: 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. 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

Page 4: 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. 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

Page 5: 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

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 ?

Page 6: 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

Page 7: 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. 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

Page 8: 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. 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

Page 9: 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. 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

Page 10: 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. 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

Page 11: 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. 11/27

Pérennité : offres d'emplois

Page 12: 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. 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

Page 13: 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

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 ?

Page 14: 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 »

Page 15: 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

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 ?

Page 16: 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!)

Page 17: 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. 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

Page 18: 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. 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

Page 19: 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

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 ?

Page 20: 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

Page 21: 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. 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

Page 22: 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

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 ?

Page 23: 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

Page 24: 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

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 ?

Page 25: 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

[email protected]

Page 26: 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. 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

Page 27: 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. 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