Scala 3 : un langage refondu pour une meilleure expérience développeur

Par:
fredericmazue

mer, 30/06/2021 - 11:54

Après huit ans de travail, Scala 3 est sorti le mois dernier. Scala 3 est une refonte complète du langage Scala. À la base, de nombreux aspects du système de types ont été modifiés. Bien que cela apporte également de nouvelles fonctionnalités intéressantes (comme les types d'union), cela signifie avant tout que le système de types améliore considérablement l'inférence de type et la résolution de surcharge.

Un concept de base sous-jacent de Scala était (et est toujours dans une certaine mesure) de fournir aux utilisateurs un petit ensemble de fonctionnalités puissantes qui peuvent être combinées à une grande expressivité (et parfois même imprévue). Par exemple, la fonctionnalité des implicites a été utilisée pour modéliser l'abstraction contextuelle, pour exprimer le calcul au niveau du type, modéliser les classes de type, effectuer des coercitions implicites, coder des méthodes d'extension et autres. En s'inspirant de ces cas d'utilisation, Scala 3 adopte une approche légèrement différente et se concentre sur l'intention plutôt que sur le mécanisme. Au lieu d'offrir une fonctionnalité très puissante, Scala 3 propose plusieurs fonctionnalités linguistiques personnalisées, permettant aux programmeurs d'exprimer directement leur intention.

Scala a toujours été à la frontière entre la programmation fonctionnelle et la programmation orientée objet, et Scala 3 tente de repousser les limites dans les deux sens. Les changements de système de types mentionnés ci-dessus et la refonte des abstractions contextuelles rendent, selon les concepteurs de Scala3,  la programmation fonctionnelle plus facile qu'auparavant. Dans le même temps, les nouvelles fonctionnalités suivantes permettent des conceptions orientées objet bien structurées et prennent en charge les meilleures pratiques.

Un guide de migration est fourni pour passer de Scala 2 à Scala 3. Le Guide décrit la compatibilité entre Scala 2 et Scala 3 : compatibilité des sources, compatibilité binaire, fonctionnalités modifiées et supprimées, métaprogrammation.

La documentation de Scala 3 est toujours en cours d'écriture, au moment où nous publions ces lignes.

Les nouveautés de Scala 3 sont décrites plus en détails dans ce billet.