Présentation Scala au Paris JUG

Voici le résumé de cette soirée Scala du Paris JUG.

Première présentation par Sadek Drobi, chroniqueur à InfoQ.

Sa présentation est une introduction aux bases de Scala et à ses particularités.
Le choix de l’introduction par l’exemple et le code en direct rend la compréhension difficile pour le non connaisseur (la syntaxe ayant bien sûr ses particularités).

La deuxième présentation réalisée par deux chroniqueurs de Xebia est plus classique et permet de mieux se faire une idée de Scala.

Scala créé en 2002 par Martin Odersky est actuellement en version 2.7. C’est un compromis entre programmation orientée objet et programmation fonctionnelle.
Le langage se place au dessus de la JVM et est intéropérable avec Java.
Scala prone la non nullité, l’immutabilité et le tout objet (les types primitifs n’existent plus).
Il permet l’inférence de type, de spécialiser les fonctions, une simplification des listes, le support natif du XML…
L’idée est aussi de passer facilement de l’objet au fonctionnel.
Le gros avantage de Scala est de simplifier fortement certains besoins.
Le singleton devient natif avec « object ».
Le pattern matching (« case class ») permet de simplifier énormément le pattern visiteur.
Les traits (« with ») permettent d’ajouter facilement des comportements soit à une classe (interface en plus évolué) soit directement à une instance. En gros cela permet de remplacer facilement la programmation orientée aspect.
L’API actors permet d’offrir une gestion différente du threading et de la concurrence.
Elle se base sur les éléments suivant :

  • un objet qui vit dans la JVM
  • pile de messages type mailbox
  • il recoit des messages et y répond
  • soit 1 thread par actor
  • soit un pool de threads
  • remote actors (jvm distante)

Un actor n’utilise un thread que s’il fait un traitement.
Alors qu’en Java, on va gérer la concurrence en mettant des locks, avec un actor, il n’y a plus ce problème, il n’y a plus d’état partagé. On transmet des messages (souvent immutables) entre Actors.
AKKA est un framework Scala rajoutant de la performance et des fonctionnalités.
Pour information, il y a des framework offrant cette fonctionnalité en java (simplification des remotes actors, stratégies de redémérage ..) !

Eclipse et surtout IntelliJ permettent de travailler sur Scala.

Les présentateurs font alors leur conclusion suivante :
Les avantages de Scala sont forts :

  • code plus concis
  • tests plus métier
  • gestion directe de certains pattern (visiteur, singletons)
  • Gestion de la concurrence

Mais il y a bien sûr des problèmes :

  • Maitrise du langage
  • Peut devenir complexe
  • Courbe d’apprentissage
  • Probleme avec java
  • Difficulté à introduire dans les entreprises sur les dev critiques (nouveaux concepts …)

Enfin quelques sociétés utilisant Scala :twitter (actors), ebay, EDF (http://www.scala-lang.org/node/3656), Siemens, Foursquare (lift)…

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *