Tour d’horizon de scala

588 vues

Publié le

1 commentaire
3 j’aime
Statistiques
Remarques
Aucun téléchargement
Vues
Nombre de vues
588
Sur SlideShare
0
Issues des intégrations
0
Intégrations
3
Actions
Partages
0
Téléchargements
12
Commentaires
1
J’aime
3
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Tour d’horizon de scala

  1. 1. Tour d’horizon de SCALA
  2. 2. Sommaire Un peu d’histoire … Scala en est où ? Scala en entreprise Les principaux concepts L’interaction avec Java Et l’environnement de travail … Pourquoi utiliser Scala ? Avis et références.
  3. 3. Un peu d’histoire … Scala a été créé en 2003 par MartinOdersky, professeur à l’Ecole Polytechnique deLausanne. Il a collaboré à la création du compilateur javac1.3 et est à l’origine des Generics de Java 5. Pour lui, Scala se devait d’être pleinementcompatible avec la JVM avec une syntaxeélégante Scala vient de « Scalable Language »
  4. 4. Un peu d’histoire … Martin Odersky a créé la société Typesafe qui a pourbut la promotion du langage. Cette société repose, en plus d’une offre de conseil, surScalaIDE (plugin eclipse), Play! (Framework web) etAkka (framework pour la programmation concurrente)
  5. 5. Scala en est où ?« I can honestly say if someone had shown me the Programming Scala book in2003 Id probably have never created Groovy. »James Strachan
  6. 6. Scala en entreprise …
  7. 7. Les principaux concepts Scala est multi-paradigme. C’est un langage pur Objet supportantune approche fonctionnelle. Il est statiquement typé. De part son inférence de type, on dit avechumour qu’il est dynamique statiquement typé. Tout est objet, tout est valeur (même les fonctions ! ) L’immuabilité est un concept central. Tout est public par défaut. Le mot clé public n’existe pas. La version 2.10 permet la compilation en Bytecode par lecompilateur de la plateforme JVM (contrairement aux anciennesversions qui utilisaient un compilateur bytecode maison) La richesse de l’API Java est utilisable par Scala.
  8. 8. Les principaux concepts
  9. 9. Les principaux concepts Le langage permet de simplifier la syntaxe◦ Le ; est optionnel◦ Les () aussi◦ Les . aussi Exemple de syntaxes identiques
  10. 10. Les principaux conceptsLes attributs et Paramètres Les attributs et paramètres Le mot clé var◦ Déclaration d’un attribut / paramètre modifiable◦ ex : Le mot clé val◦ Déclaration d’un attribut / paramètre immuable◦ ex :
  11. 11. Les principaux conceptsLes Classes La déclaration◦ Et ça suffit !!!!!!◦ Le constructeur par défaut ainsi que les accesseurs sontimplicites. Mais l’encapsulation là dedans ?◦ Si un jour un setter a besoin d’être explicité il pourra être faitsans modification des appels existants sur cet attribut.◦ Pour des besoins de compatibilité avec des APIJava, comme JPA par exemple qui attendent un getVariableil est possible de dire à Scala de le générer comme ici :
  12. 12. Les principaux conceptsLes méthodes Déclaration Une méthode renvoie systématique une valeur Il n’y a pas de mot clé return comme en Java C’est le résultat de la dernière instruction qui est renvoyé. Ici, une méthode qui additionne 2 entiers :
  13. 13. Les principaux conceptsLes Options Fini les NullPointerException !!
  14. 14. Les principaux conceptsLes Object Une intégration native du pattern Singleton Voici une déclaration : Et son utilisation :
  15. 15. Les principaux conceptsLes traits Un trait est une sorte d’interface (le mot clé interface n’existepas en Scala) Il peut contenir une implémentation L’héritage multiple est possible
  16. 16. Les principaux concepts Une intégration du pattern Factory
  17. 17. Les principaux conceptsLes Compagnons C’est l’utilisation d’une factory comme dans le slide précédentmais cette fois le nom est identique. Ce qui permet l’écriture simple et intuitive :
  18. 18. Les principaux conceptsLe Pattern Matching La reconnaissance de motif est un outil puissant, ce n’est pasqu’un « switch vitaminé »
  19. 19. Les principaux conceptsLe Pattern Matching Ou encore …
  20. 20. Les principaux conceptsLes case classes Immuable : Une fois la classe instancié, l’objet ne plus être modifié L’objet compagnon est implicite, pas besoin de « new » Le constructeur est implicite Les méthodes equals, toString et hashcode sont implicites Peut se décomposer avec le pattern matching.
  21. 21. Les principaux conceptsLes collections Scala offre une API très puissante pour la gestion des collections. Quelques exemples :
  22. 22. Les principaux conceptsLes fonctions de haut niveau Proche du concept des lambda expression de Java 8 Exemple de mise en œuvre. Exécuter une fonction passée enparamètre de manière périodique.
  23. 23. Les principaux conceptsLes acteurs API permettant de réaliser de la programmation concurrente etdistribuée, offrant facilité de mise en œuvre et de très bonnesperformances C’est un portage d’Erlang, on y retrouve même la notion desupervision, robustesse garantie.
  24. 24. Les principaux conceptsLes tests Compatible avec Junit
  25. 25. L’interaction avec Java Scala fonctionne sur la JVM, il est complètementinteropérable. Vous n’êtes donc pas obligé de réécrire votre SI pourcommencer. Scala est compilé en bytecode java. Vous pouvez appeler une librairie Java depuis Scala Scala peut être appelé directement depuis du Java.
  26. 26. L’interaction avec JavaQuelques exemples Avec JPA …
  27. 27. L’interaction avec JavaQuelques exemples Avec Spring MVC…
  28. 28. L’interaction avec JavaQuelques exemples Une servlet …
  29. 29. L’interaction avec JavaQuelques exemples Maven… Utilisation de l’archetype simple (bientôt un web ?)◦ GroupId= org.scala-tools.archetypes◦ ArtifactId=scala-archetype-simple
  30. 30. Et l’environnement de travaildans tout ça … Les IDE principaux ont des plugins très bien intégrés pourScala. Pour les puristes, il existe un plugin pour vim
  31. 31. Pourquoi utiliser Scala ? Syntaxe fluide et productive Le pattern matching, outil extrêment puissant La manipulation des collections Les fonctions anonymes Permet de capitaliser sur ce qui a déjà été réalisé en Java Scala est-il déjà ce que Java 10 devrait être ... ?
  32. 32. Un dernier avis … Attention tout de même à l’utilisation d’une syntaxe trop concisequi peut rendre plus difficile l’assimilation du code par un pair. Tentation de faire du Java avec Scala et de ne jamais exploiter larichesse du fonctionnel.
  33. 33. Plus en detail … Apprendre Scala en ligne : https://www.coursera.org/course/progfun Scala Officiel : http://www.scala-lang.org/ Excellent Blog : http://danielwestheide.com/scala/neophytes.html Pour débuter : http://www.siteduzero.com/informatique/tutoriels/apprenez-la-programmation-avec-scala

×