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…