Transcript
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


Recommended