Retour sur le Paris JUG Scala

Publié le Mis à jour le Par

Cette session m’a permis d’éclaircir un peu ce qui se cache derrière le langage Scala lors
des deux conférences données au cours du Paris JUG du 14 à l’ISEP. Pas besoin de faire un compte-rendu détaillé des conférences
puisque c’est déja fait : http://thecodersbreakfast.net/index.php?post/2010/04/11/Paris-JUG-Scala.


Tout d’abord, il faut signaler que pour ma première participation au Paris JUG, j’ai été enchanté par l’ambiance bon enfant et par les organisateurs.

Scala est une salle d’opéra à Milan mais aussi un langage mêlant programmation orientée-objet et fonctionnelle, tournant sur la JVM. Selon James Gosling (un des fondateurs de Java) :
“If I were to pick a language to use today other than Java, it would be Scala.”
Rien que ça.

Donc, venons-en au fait, voici mes impressions de Scala appliquées à l’entreprise :

Positives :

  • l’ajout de la programmation fonctionnelle donne un autre niveau d’abstraction permettant par exemple de manipuler simplement des opérations sur des listes, de factoriser des traitements
  • gestion des Null (Option) : évite les NullPointerException mais il me semble que le code métier nécessitera toujours de vérifier si l’objet est null ou pas (dissocier le cas d’erreur du cas normal)
  • les Actors permettent de repenser la concurrence de façon simple. Bonne chose, les Actors ont été portés pour Java : Kilim http://www.malhar.net/sriram/kilim/
  • adopté par des entreprises importantes :
  • * Twitter : gestion des messages
  • * EDF
  • * Siemens : mise en place d’un réseau social
  • * … et les autres
  • les traits : séparation des membres et des méthodes au sein d’un objet
  • support du XML natif : le code XML s’écrit directement dans le code (bar) sans "" (à la différence d’une string). Le parsing est simple aussi (exemple complet : http://www.ibm.com/developerworks/library/x-scalaxml/)

Négatives :

  • l’écriture concise y est présentée comme bénéfique mais j’y vois aussi un risque de générer du code trop complexe, illisible
  • changement de paradigme : il faut revoir sa manière de coder en Scala, nécessite un investissement conséquent
  • la rétro-compatibilité n’est pas encore assurée, cela peut être un frein à l’adoption du langage en entreprise
  • framework lift : présence de code présentation dans les classes (?!)
  • plugin IDE : buggé ou lent ? que choisir ? Plantage d’Eclipse 3/4 fois (et pas de refactorisation) ou attendre 20s de compilation pour 3 classes avec IntelliJ ?

En conclusion, que penser de Scala ?
Scala est prometteur et fait envie mais en tant que développeur Java en entreprise, je pense qu’il est encore un peu tôt pour passer à Scala, le tout étant de prendre le train en marche. J’attends de voir l’évolution d’ici 1 à 2 ans.

A noter que le framework Play! prévoit pour la version 1.1 un module Scala : http://www.playframework.org/documentation/1.1-trunk/scala. Wait and see…