1. Introduction▲
Scala rassemble dans un même langage les paradigmes de programmation orientée objet et de programmation fonctionnelle. Il a été conçu pour exprimer les motifs de programmation courants de façon concise, élégante, avec un système de typage sûr. Scala met à la disposition du programmeur plusieurs nouvelles constructions innovantes :
- les types abstraits et la composition par mixin unifient les concepts d'objet et de module ;
- le pattern matching (reconnaissance de motif) peut s'appliquer à des hiérarchies de classes et unifie ainsi l'accès aux données de façon fonctionnelle ou orientée objet et simplifie aussi énormément le traitement des arborescences XML ;
- une syntaxe et un système de typage souples permettent de créer des bibliothèques élaborées et des langages dédiés ou spécifiques à un domaine particulier (domain specific language ou DSL).
En même temps, Scala est compatible avec Java. Vous pouvez donc utiliser les bibliothèques et les frameworks Java sans code supplémentaire.
Ce cours présente Scala de façon informelle, au moyen d'une suite d'exemples.
Les chapitres 2 et 3 présentent quelques-unes des fonctionnalités qui font l'intérêt de Scala. Les chapitres suivants introduisent les constructions du langage de façon plus détaillée - les expressions et les fonctions simples, les objets et les classes, les listes et les flux, la notion d'état mutable et la reconnaissance de motif - et montrent quelques techniques de programmation utiles. Cette présentation informelle est prévue pour être le complément du manuel de référence du langage, qui décrit Scala de façon plus détaillée et plus précise.
Remerciements. Nous devons beaucoup au merveilleux ouvrage d'Abelson et Sussman, « Structure et Interprétation des programmes informatiques » (InterÉd., 1989) et nous reprendrons ici un bon nombre de leurs exemples et exercices en remplaçant, bien sûr, le langage Scheme par Scala. En outre, nos exemples utilisent les constructions orientées objet de Scala lorsque cela est approprié.