mars
2008
J’avais l’intention depuis un bout de temps déjà de jouer un peu avec l’un des langages tournant sur la JVM autre que Java.
Il s’agit principalement de Groovy et de Scala.
J’avais un petit penchant dès le départ vers Groovy (question de hype peut être ?), et j’ai en effet fait quelques petits tests avec la Console Groovy (qui est une excellente idée soit dit en passant), notamment pour voir les closures.
Mais n’étant pas complètement satisfait par Groovy (ou du peu que j’ai pu en voir), j’ai décidé d’aller voir du côté de Scala.
Autant vous prévenir tout de suite, le chemin de l’apprentissage de Scala est une pente un peu (beaucoup) difficile, mais ça s’explique.
La raison principale est la suivante: Scala est crée et maintenu par des académiques et des scientifiques, ce qui se traduit dans sa documentation.
Il suffit d’aller essayer de lire le document de référence de Scala (Scala Language Specification) et vous comprendrez de quoi je parle (vous laisserez tomber la lecture après quelques pages )
De plus, (origine académique et scientifique oblige) Scala a un fort penchant pour le paradigme fonctionnel, ou encore bête noire de nous, pauvres Javaistes limités à la simplissime POO.
Pour couronner le tout, les concepteurs de Scala font pousser ce côté fonctionnel en devant, passant une peur bleue au converties potentiels: Suffit de voir comment Scala est en train d’être massacré partout à cause de bouts de code tel que le fameux (_+_) qui, selon certains, laissait à penser que Scala détronerait Perl, dans la catégorie des LOH (Lanages Orientés Hiéroglyphes).
Mais heureusement que d’autres comme Daniel Spiewak ou encore Alex Blewitt savait comment vendre la chose aux programmeurs Java, en insistant plutôt sur son côté Objet pur, et en administrant le côté fonctionnel à petites doses, histoire de ne pas trop effrayer la foule.
C’est notamment grâce à la série « Scala for Java Refugees » que j’ai pu commencer à apprendre Scala, mais surtout à l’admirer.
Avant Scala, je n’ai jamais eu à me plaindre de Java. C’est vrai que c’est un langage bavard comparé aux nouveaux venus, mais mon eclipse s’occupait de ça, grâce au solide et fiable JDT, en générant par exemple une grande majorité du scaffolding.
De plus la richesse phénoménale en APIs et bibliothèques et la fiabilité/vitesse de la plateforme me permettaient de tenir sans flancher devant les tsunamie tel que Ruby et co
Mais après avoir goûté à Scala, je dois dire que je regrettes déjà le fait que j’ai touché à ce langage: désormais, le boulot deviendra encore plus pénible qu’il l’est déjà !
Rassurez vous, je ne vais pas faire ici une séance intensive de hype pour Scala, mais je vais me contenter de dire ceci: Scala n’est pas aussi effrayant qu’il en a l’air ! Suffit de supporter le tooling exécrable (le côté type statique de Scala devrait permettre d’avoir un SDT au niveau du JDT), et la documentation élitiste (ça s’améliore avec l’adoption du langage: suffit de chercher ailleurs que le site officiel) et d’y consacrer du temps et des neuronnes: ça le mérite largement.
Je débute aussi en Scala et en effet c’est alléchant
Juste une remarque:
Je ne pense pas que Scala penche pour le fonctionnel, je dirais plutôt que le but est d’unifier le fonctionnel et l’OO, on peut programmer avec les deux paradigmes, selon la situation l’un peut être plus adapté que l’autre…