Blog Arolla

Introduction à Scala – épisode 1

Scala est un langage qui a du caractère. Il fait réagir du monde; ceux qui l’ont essayé et l’adorent, ceux qui ne l’ont jamais essayé mais le détestent et les autres. Parmi ce beau monde les plus étonnants sont ceux qui veulent accuser Scala des travers des langages (comme le C++) qu’ils ont aimé détester. Au lieu de vous laisser influencer par les autres essayez par vous-même ce langage qui a fait le pari audacieux de marier les paradigmes fonctionnel et orienté objet.

A propos de cette série d’articles

Je souhaite à travers une série d’articles introduire le langage de programmation Scala. Cela a un double intérêt pour moi. D’une part ce sera l’occasion pour moi d’approfondir ma connaissance du langage et d’autre part j’accompagne les premiers pas de ceux qui souhaitent l’apprendre.

D’où vient Scala et que propose-t-il ?

Scala est un langage de programmation créé par Martin Ordersky professeur à l’École Polytechnique Fédérale de Lausane EPFL en Suisse. Sa première version est rendue publique en 2003. Son nom vient de l’abréviation de “scalable language” signifiant qu’il est capable de s’adapter aux contraintes de passage à l’échelle (scalabilité) du développeur en lui fournissant des “abstractions” et des constructions à cet effet. La particularité de Scala est qu’il intègre à la fois les paradigmes de programmation fonctionnelle et orientée objet. Il est statiquement typé et s’exécute sur la machine virtuelle Java (JVM).

Dans la suite de la série je reviendrai plus en détail sur ces deux paradigmes. Le point clé de ce mariage entre les paradigmes orienté objet et fonctionnel est qu’il vous offre plus d’options pour résoudre vos problèmes. Les différentes possibilités d’extension du langage facilitent l’expression de logiques métier complexes et de produire du code qui s’intègrent d’une manière élégante au reste du langage. La bibliothèque standard de Scala est un bon exemple de cette puissance expressive.

Un autre aspect de Scala est qu’il dispose d’une inférence de type qui allège le code et en réduit fortement la verbosité. C’est agréable et on a parfois l’impression de travailler avec un langage dynamique.

Scala vient avec un interpréteur qui porte le doux nom de REPL pour Read-Eval-Print-Loop. Comme vous l’avez peut-être deviné le REPL vous laisse taper du code dans une console, l’évalue, affiche le résultat et attend de nouveau que vous tapiez quelque chose. Vous pouvez vous servir du REPL pour tester rapidement vos idées et faire du prototypage. Il est idéal pour apprendre le langage et nous ne manquerons pas de nous en servir pour cela.

Quel écosystème pour Scala ?

La plate-forme Java est aujourd’hui très mature et bien introduite en entreprise. Les outils et les librairies sont nombreuses et matures. En outre les développeurs Java se comptent en milliers. Scala tire pleinement partie de cette maturité et de la puissance qu’elle confère à Java en s’intégrant facilement avec le langage Java. Un programme écrit en Scala peut accéder à n’importe quel code écrit en Java et tourne, après compilation, sur la machine virtuelle Java.

Au-delà de la force que lui confère Java, l’écosystème de Scala compte de nombreux projets et outils emblématiques dont voici quelques uns :

  • Akka : Akka propose un ensemble d’outils pour créer des applications concurrentes et distribuées. Il utilise les acteurs comme modèle de programmation.
  • Play : Un framework pour la création d’applications web
  • Scalding : Une librairie Scala qui rend facile la spécification des tâches Hadoop.
  • Specs2 et ScalaTest : Des librairies de test populaires écrits en Scala.
  • Spray : Basé sur Akka, Spray propose des interfaces de programmation (API) pour écrire des applications HTTP performantes

Les outils, les outils !

Commençons par les outils de build. Un projet Scala peut être buildé par les outils de build majeurs en Java : Maven, Gradle et Apache buildr. En outre il existe un autre outil, SBT (Simple Build Tool), écrit en Scala pour builder des projets Scala et Java. SBT est utilisé par des projets comme Akka, Play, Spray etc.

Eclipse, Netbeans et Intellij ont des plugins pour l’intégration Scala. Il est aussi possible d’utiliser d’autres environnement comme Sublime Text, emacs, vim etc.

Autres ressources pour apprendre à programmer en Scala

Il existe d’autres ressources disponibles gratuitement sur Internet pour apprendre à programmer en Scala. Voici une liste non exhaustive de certaines de ces ressources :

  • http://docs.scala-lang.org : Un site plutôt bien fait et assez complet pour apprendre le langage. Vous y trouvez une quantité incroyable d’information.
  • La première édition du livre écrit par Odersky, créateur de Scala, est en accès libre en ligne à cette adresse : http://www.artima.com/pins1ed/.
  • Scala School par Twitter : Twitter a publié une introduction rapide à Scala. Vous pouvez y jeter un coup d’œil en allant à l’adresse http://twitter.github.io/scala_school/.
  • Martin Odersky donne un cours d’introduction à la programmation fonctionnelle à travers Scala sur https://www.coursera.org. Environ 50 000 personnes se sont inscrites à la première édition du cours. Faites sur un tour sur coursera afin de vous renseigner sur les éditions à venir.

J’ai besoin de vous !

N’hésitez pas à réagir à ce que j’écris ici ou à me corriger à travers les commentaires et à me faire des suggestions sur le contenu et la forme des articles.

C’est quoi la suite ?

Dans le prochain nous allons installer Scala et faire nos premiers avec le REPL. Ce sera pour vous l’occasion d’écrire du code Scala.

Laisser un commentaire

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