Scala… Qu’est ce que c’est ?

Tout d’abord présentons rapidement ce langage, Scala est un langage de programmation qui a été conçu par l’Ecole polytechnique fédérale de Lausanne en 2003. Ce langage s’appuie sur le langage Java et a hérité de ses bibliothèques. Scala a été développé dans le but d’avoir un langage multi-paradigme, extensible et une compatibilité pour toutes plateformes. Une de ces trois notions nous est donnée dans son nom, en effet Scala vient du mot anglais « scalable » qui signifie extensible. Nous reviendrons sur ces notions par la suite.

Que nous apporte ce nouveau langage ? Java ne suffisait pas ?

Scala a été créé pour regrouper des concepts déjà existants dans un seul langage. Ces concepts sont les trois cités en introduction, à savoir extensible, multi-paradigme et une compatibilité pour toutes plateformes. Commençons tout d’abord par :

Scalability ou évolutivité pour les Frenchies :

Ce langage suit le programmeur tout au long de son développement. En effet, ce langage a la faculté de pouvoir être étendu en fonction des besoins des programmeurs. L’idée est de reléguer tout ce qui n’est pas indispensable au fonctionnement du langage dans des bibliothèques. De plus, les programmes en Scala sont moins lourds qu’un programme Java. Cette réduction de taille est due à la syntaxe du langage Scala qui est allégée par rapport à d’autres langages de programmation. En effet, l’utilisation des fonctionnalités de Scala passe par l’appel aux fonctions des différentes bibliothèques.

Programme HelloWorld en Scala

Multi-paradigme :

Le premier paradigme que l’on peut trouver dans Scala est la programmation orientée objet. L’objectif de cette approche est de faciliter la production de programmes possédant de bonnes qualités de modularité : on veut développer une partie d’un programme sans qu’il soit nécessaire de connaître les détails d’implémentation des autres parties. Pour ce faire, on se basera sur des objets, des structures de données présentes en mémoire, combinant données et code. Ce code détermine ce que l’objet peut effectuer. Un objet possédera une interface et une implémentation. L’exécution d’un programme sera vue comme l’échange de messages entre ces objets. Ce paradigme est aujourd’hui beaucoup utilisé (Java, VisualBasic, …).

Les deux autres paradigmes possédés par Scala sont la programmation impérative et la programmation fonctionnelle. Le premier terme signifie que le programme va exécuter différentes instructions, et à chaque exécution le programme changera d’état. Le deuxième terme signifie qu’il est possible d’écrire un programme en imbriquant des fonctions les unes dans les autres.

Compatibilité :

Lorsqu’un langage de programmation est développé, il est impensable qu’il soit compatible à une seule plateforme. Les programmes Scala sont compilés en bytecode. Héritant de Java, Scala est fonctionnel sur toutes les plateformes compatibles Java. De plus cet héritage possède un autre avantage, il est possible d’utiliser du code Java dans un programme Scala. L’intérêt de cette fonctionnalité est la possibilité d’utiliser des bibliothèques Java sans avoir besoin de les recompiler.

Malgré un placement à la 30ème place, Scala est un langage qui se développe pour des applications importantes comme twitter qui utilise désormais ce langage pour gagner en performance.

Sources :

https://en.wikipedia.org/wiki/Scala_(programming_language)

--

--