Reasonable Scala Compiler : un compilateur Scala expérimental axé sur la vitesse de compilation
annoncé par Twitter
Reasonable Scala Compiler ou littéralement "Compilateur Scala Raisonnable" (rsc) est un compilateur Scala expérimental axé sur la vitesse de compilation. Le projet est développé par Twitter a été récemment publié sur GitHub. Comme l'explique Twitter, rsc n'est pas un fork, mais une réimplémentation « propre » d'un compilateur Scala. L'entreprise est en effet persuadée qu'une « réécriture axée sur la performance fournira une perspective unique sur les coûts de compilation introduits par diverses fonctionnalités et expressions idiomatiques de Scala – ce qui est actuellement très difficile à quantifier dans les compilateurs existants. »
Avec rsc, la mission de Twitter sera donc d'aider à améliorer les compilateurs officiels et de contribuer à leur évolution. « Nous cherchons à découvrir des informations pratiques sur l'architecture de compilateur Scala et la conception de langage qui aideront les développeurs de compilateur de Lightbend [la startup derrière le langage Scala] et EPFL [l'École polytechnique fédérale de Lausanne où a été conçu le langage Scala] à optimiser leurs compilateurs au profit de toute la communauté Scala. » Les objectifs du projet rsc sont notamment de :
- améliorer considérablement la performance de la compilation Scala ;
- étudier le temps de compilation des différentes fonctions Scala ;
- identifier un sous-ensemble de Scala qui peut être compilé à une vitesse raisonnable ;
- faciliter le transfert de connaissances vers d'autres compilateurs Scala.
Il faut également préciser que l'objectif n'est pas d'assurer une rétrocompatibilité complète ou d'ajouter de nouvelles fonctionnalités de langage. Il ne s'agit pas non plus d'améliorer le système de type.
Le projet de Twitter s'inspire du travail de Martin Odersky (le concepteur de Scala) et Grzegorz Kossakowski, un ancien développeur de Lightbend. « Martin nous a montré que, de nos jours, il est encore possible d'écrire un compilateur Scala à partir de rien. Greg nous a montré que la compilation de Scala peut être très rapide », explique Twitter sur GitHub. L’entreprise croit qu’il est possible d'obtenir des vitesses de compilation impressionnantes (5-10x) pour les bases de code Scala typiques, et dit être actuellement sur la bonne voie pour réaliser cette vision.
« Nous croyons également que la restriction de notre compilateur pour supporter un sous-ensemble de Scala permettra d'accélérer davantage les compilations », explique Twitter. C'est ce sous-ensemble qui est appelé le « Scala Raisonnable » et Twitter va maintenant travailler pour l'identifier. Cela veut dire qu'il est actuellement un peu trop tôt pour dire les fonctionnalités qui seront supportées. Twitter prévoit par contre de « commencer avec un petit sous-ensemble trivial de Scala, puis ajouter progressivement des fonctionnalités et mesurer soigneusement leur impact sur les performances de compilation. »
Tous les programmes Scala ne seront pas compatibles avec Scala Raisonnable. À cause de cela, Twitter affirme qu'une migration Scalafix peut être nécessaire pour utiliser rsc. Cependant, tous les programmes Scala Raisonnable seront compatibles avec Scala, de sorte que les codebases qui ont été migrés seront crosscompilables. Cela dit, Twitter assure quand même prendre le problème de compatibilité très au sérieux. Rappelons en effet que Scala est l'un des principaux langages de programmation de Twitter et une grande partie de son infrastructure est écrite en Scala.
Twitter envisage de rendre le Compilateur Scala Raisonnable open source dans avenir proche.
Source : Reasonable Scala Compiler (GitHub)
Et vous ?
Utilisez-vous Scala ? Que pensez-vous de ce projet ?
Partager