Cours
Introduction

Scala a été conçu par Martin Odersky, professeur à l’École polytechnique fédérale de Lausanne (EPFL) en Suisse et informaticien allemand. Martin a commencé à travailler sur Scala en 2001 et la première version est sortie en 2004.
Scala signifie Scalable Language. C’est un langage orienté objet polyvalent qui partage plusieurs points communs avec le langage Java. Il prend en charge la programmation fonctionnelle. De nombreuses décisions de conception de Scala visaient à pallier les limites du langage Java.
Voici quelques fonctionnalités offertes par Scala :
-
Le code source Scala peut être compilé en bytecode Java et s’exécuter ainsi sur une Java Virtual Machine (JVM).
-
Il assure l’interopérabilité avec Java, ce qui permet d’utiliser dans un même projet des bibliothèques écrites dans l’un ou l’autre langage.
-
Comme Java, Scala utilise une syntaxe à accolades.
-
Il reprend de nombreuses caractéristiques des langages fonctionnels comme Scheme, Standard ML et Haskell : curryfication, inférence de types, immutabilité, évaluation paresseuse et filtrage par motifs (pattern matching).
-
Prise en charge d’applications Web via JavaScript.
-
Contrairement à Java, Scala gère également la surcharge d’opérateurs, les paramètres optionnels, les paramètres nommés et les chaînes brutes.
Un fait intéressant sur Scala : il est largement utilisé par des entreprises comme Apple, Twitter, Walmart et Google pour sa scalabilité et ses capacités côté backend.
Configurer Scala dans Jupyter Notebook
Jupyter Notebook est l’un des outils les plus utilisés en informatique, notamment en data science. Il prend aussi en charge le développement Scala grâce au spylon-kernel.
Remarque : si vous débutez avec Jupyter Notebook, n’hésitez pas à consulter ce tutoriel complet.
Configurer l’environnement Scala dans Jupyter Notebook est très simple. Procédez en quelques étapes :
-
Commencez par installer
spylon-kernel.pip install spylon-kernel(Python 2)pip3 install spylon-kernel(Python 3) -
Créez ensuite la spécification du noyau pour pouvoir sélectionner le
scala-kerneldans Jupyter Notebook.python -m spylon_kernel install(Python 2)python3 -m spylon_kernel install(Python 3) -
Étape importante : installez
pysparketfindspark, carspylon-kernelinstalle également des composantsspark.pip install pyspark findspark(Python 2)pip3 install pyspark findspark(Python 3) -
Enfin, lancez Jupyter Notebook, choisissez le noyau
spylon-kernelet c’est parti !

- Exécutez un court extrait de code pour vérifier que le noyau Scala est correctement configuré.
val x = 2
val y = 3
x*y
x: Int = 2
y: Int = 3
res1: Int = 6
Parfait ! Comme vous pouvez le constater ci-dessus, l’environnement Scala a bien été configuré dans Jupyter Notebook.
Syntaxe de base
Commençons par afficher Hello, World! en Scala.
print("Hello, World!")
Hello, World!
Comme vous le voyez, c’est très simple : une commande print suivie de l’entrée passée en argument.
Voyons maintenant quelques éléments de syntaxe en Scala :
-
Scala est sensible à la casse : les identifiants
DataCampetdataCampont des significations différentes. -
En Scala, la première lettre des noms de classes doit être en
majuscule. Si le nom de la classe comporte plusieurs mots, la première lettre de chaque mot est en majuscule. Par exemple :class MyScalaDataCampTutorial. -
Les noms de méthodes en Scala suivent une convention différente des
noms de classesafin de les distinguer. Les noms de méthodes commencent par une lettre minuscule (Source). Si le nom contient plusieurs mots, la première lettre de chaque mot interne est en majuscule. Par exemple :def firstDatacampScalaTutorial() -
En Scala, le nom du fichier programme doit correspondre exactement au nom de l’objet. Lors de l’enregistrement, utilisez le nom de l’objet et ajoutez l’extension
.scala. Par exemple, si l’objet s’appelleScalaTutorial, le fichier devra être enregistré sousScalaTutorial.scala.Remarque : si le nom de fichier et le nom de l’objet ne correspondent pas, le programme ne compilera pas.
-
Enfin, comme dans la plupart des langages, l’exécution d’un programme Scala démarre par la méthode
main(), partie essentielle de tout programme Scala.
La figure ci-dessous présente les mots réservés de Scala, qui ne peuvent pas être utilisés comme constantes, variables ou identifiants.
Types de données
Les types de données en Scala sont très proches de ceux d’autres langages comme C, C++, Java ou Python, avec des tailles mémoire et des précisions similaires.
Voyons enfin quelques types de données présents en Scala :
-
Int : valeur signée 32 bits (peut être positive ou négative) avec un intervalle de 2^{-31} à 2^{31} - 1
-
Byte : valeur signée 8 bits avec un intervalle de 2^{-7} à 2^{7} - 1
-
Short : valeur signée 16 bits avec un intervalle de 2^{-15} à 2^{15} - 1
-
Long : valeur signée 64 bits avec un intervalle de 2^{-63} à 2^{63} - 1
-
Float : 32 bits (simple précision) et 64 bits (double précision)
-
Char : caractère Unicode 16 bits non signé (valeurs uniquement positives).
Parmi les autres types, on trouve notamment String, Boolean, Null.
Conclusion
Félicitations d’avoir suivi ce tutoriel jusqu’au bout.
C’est un excellent point de départ pour les débutants qui souhaitent apprendre Scala.
Pour aller plus loin, découvrez les tutoriels Scala de DataCamp :
Les bases des fonctions et méthodes en Scala
Il reste une multitude de notions à explorer autour de Scala : if/else, boucles for, opérateurs, etc. Ces sujets seront couverts dans de futurs tutoriels. Restez à l’écoute !
Références :
N’hésitez pas à poser vos questions sur ce tutoriel dans les commentaires ci-dessous.