Guide du débutant à Scala

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 la création de Scala en 2001, et sa première version a été publiée en 2004.

Scala signifie Scalable Language (langage évolutif). C’est un langage polyvalent orienté objet qui partage quelquessimilarités avec le langage de programmation Java. Il offre un support pour le programmation fonctionnelle. Nombreuses décisions de conception de Scala étaient dirigées vers l’adressage des défauts du langage Java.

Quelques fonctionnalités offertes par Scala sont les suivantes :

  • Le code source de Scala peut être compilé en bytecode Java et donc, exécuté sur une Machine Virtuelle Java (JVM).

  • Il offre une interopérabilité de langage avec Java de sorte que les bibliothèques écrites dans l’un ou l’autre langage puissent être référencées dans un codebase Scala ou Java.

  • Comme Java, Scala utilise également une syntaxe avec accolades.

  • Il possède de nombreuses fonctionnalités de langages de programmation fonctionnels tels que Scheme, Standard Machine Learning et Haskell, notamment la curryfication, l’inference de type, l’immuabilité, l’évaluation paresseuse et le pattern matching.

  • Support pour les applications Web utilisant JavaScript.

  • Contrairement à Java, Scala supporte également le surcharge d’opérateurs, les paramètres optionnels, les paramètres nommés et les chaînes brutes.

Un fait intéressant à propos de Scala est qu’il est largement utilisé par des entreprises comme Apple, Twitter, Walmart et Google en raison de sa scalabilité et de sa capacité à être utilisé dans les opérations backend.

Configuration de Scala dans Jupyter Notebook

Le Jupyter Notebook est l’outil le plus largement utilisé en informatique, surtout dans le domaine des sciences des données. Il supporte également le développement en Scala avec l’aide de spylon-kernel.

Note : Pour ceux d’entre vous qui sont nouveaux dans Jupyter Notebook, n’hésitez pas à consulter ce tutoriel complet.

Configurer l’environnement Scala dans Jupyter Notebook n’est pas une science复杂e. Alors, fassions-le rapidement en quelques étapes.

  • Vous commencerez par installer spylon-kernel.

    pip install spylon-kernel (Python 2)
    pip3 install spylon-kernel (Python 3)

  • Ensuite, vous créerez une spécification de noyau qui vous permettra de sélectionner scala-kernel dans Jupyter Notebook.

    python -m spylon_kernel install (Python 2)
    python3 -m spylon_kernel install (Python 3)

  • Ensuite, étape importante, vous installerez pyspark et findspark car spylon-kernel installe également certains composants spark.

    pip install pyspark findspark (Python 2)
    pip3 install pyspark findspark (Python 3)

  • Enfin, lancez votre bloc-notes Jupyter et choisissez le noyau spylon-kernel et vous êtes prêt à démarrer !

  • Faisons exécuter un petit bout de code pour tester si le noyau Scala a été correctement configuré ou non.
val x = 2 val y = 3 x*y
x: Int = 2 y: Int = 3 res1: Int = 6

Super ! Comme vous pouvez l’observer à partir de la sortie ci-dessus, vous avez réussi à configurer l’environnement Scala dans le bloc-notes Jupyter.

Syntaxe de Base

Commençons par afficher Salut, Monde ! en Scala.

print("Hello, World!")
Hello, World!

Comme vous pouvez le voir, c’était si simple, juste une commande print suivie de l’entrée en argument.

Maintenant, examinons quelques détails relatifs à la syntaxe en Scala :

  • Scala est sensible à la casse, ce qui signifie que les identifiants DataCamp et dataCamp auront un sens différent en Scala.

  • En Scala, la première lettre de tous les noms de classe doit être en Minuscule majuscule. Si plusieurs mots sont combinés pour former un nom de classe, la première lettre de chaque mot distinct doit être en majuscule. Par exemple, class MonScalaDataCampTutorial.

  • Les noms des méthodes en Scala fonctionnent différemment par rapport aux noms de classes, principalement pour distinguer les noms des méthodes des noms de classes. Les noms des méthodes doivent commencer par une lettre en minuscule (Source). Si plusieurs mots sont combinés pour former le nom de la méthode, alors la première lettre de chaque mot interne doit être en majuscule. Par exemple, def firstDatacampScalaTutorial()

  • En Scala, le nom du fichier de programme doit correspondre exactement au nom de l’objet. Lorsque vous enregistrez le fichier, vous devez l’enregistrer en utilisant le nom de l’objet et ajouter .scala à la fin du nom. Par exemple, supposons que ScalaTutorial soit le nom de l’objet. Alors, le fichier doit être enregistré sous le nom de ScalaTutorial.scala.

    Note : Si le nom du fichier et le nom de l’objet ne correspondent pas, votre programme ne pourra même pas être compilé.

  • Finalement, comme dans la plupart des langages de programmation, le traitement du programme Scala commence également par la méthode main(), qui est une partie essentielle de chaque programme Scala.

La figure ci-dessous montre les mots réservés en Scala qui ne peuvent pas être utilisés comme constantes ou variables ou comme d’autres identificateurs.

(Source)

Types de données

Les types de données en Scala sont presque identiques à ceux d’autres langages de programmation comme le C, le C++, le Java, le Python, etc., avec une empreinte mémoire et une précision similaires.

Finalement, jetons un coup d’œil à quelques uns des types de données existant en Scala :

  • Int : Un entier signé 32 bits (peut prendre des valeurs positives et négatives) a une plage allant de $2^{-31}$ à $2^{31} – 1$

  • Byte : Un octet signé 8 bits a une plage allant de $2^{-7}$ à $2^{7} – 1$

  • Short : Un entier signé 16 bits a une plage allant de $2^{-15}$ à $2^{15} – 1$

  • Long : Un entier signé 64 bits a une plage allant de $2^{-63}$ à $2^{63} – 1$

  • Float : Les deux 32 bits (flottant de simple précision) et 64 bits (flottant de double précision)

  • Char : Un caractère Unicode non signé 16 bits (ne peut prendre que des valeurs positives).

Quelques autres types de données sont Chaîne, Booléen, Nul.

Conclusion

Félicitations pour avoir terminé ce tutoriel.

Il s’agit d’un bon point de départ pour les débutants intéressés par l’apprentissage de Scala.

Pour en apprendre davantage, consultez les tutoriels Scala de DataCamp :

Les bases des fonctions et des méthodes en Scala

IF ELSE en Scala

Opérateurs en Scala

Listes en Scala

Il reste encore beaucoup d’informations relatives à Scala à découvrir, comme les instructions if/else, les boucles for, les différents opérateurs en Scala, etc., qui seront abordées dans les tutoriels à venir, alors restez connectés !

Références:

N’hésitez pas à poser vos questions relatives à ce tutoriel dans la section des commentaires ci-dessous.

Source:
https://www.datacamp.com/tutorial/beginners-guide-to-scala