TOOLinux

Le journal du Libre

Conférence FOSDEM 2009 : Scala

jeudi 19 février 2009

Voici un exemple de signature de fonctions :

int fun(int x)

VS

def fun(x : int) : int =

et un autre, d’appel de fonction :

obj.method.arg

VS

obj method arg

D’après le conférencier, il y a 2 fois moins de lignes de code à maintenir dans un projet Scala que dans un projet Java, à fonctionnalités équivalentes. Parmi les points les plus décriés, il a expliqué les raisons derrière l’inversion de déclaration du type d’une variable (int x en Java s’écrit x : int en Scala) :

  • Inférence de type est facilité
  • Les types très longs (map<array<map<array<… » »>) sont plus facilement détectables

Dans ce langage, toute fonction est une valeur et toute valeur est un objet. Par inférence, toute fonction est un objet, ce qui positionne ce langage à la croisée entre les langages fonctionnels et les langages impératifs. Ce langage est rempli de beaucoup de sucre syntaxique. Par exemple, pour ajouter 2 à toutes les valeurs d’un tableau :

a(i) = a(i) + 2

qui ressemble beaucoup à son équivalent ruby :

a = a + 2

Le langage est intégré à toutes les IDEs connues du monde Java (Eclipse, NetBeans, IntelliJ) et dispose d’un compilateur statique (scalac) et d’un compilateur dynamique (fsc), qui fonctionne en tâche de fond.

Blog du 0800Linux