Scala pour le big data

Auteur
Prof. Martin Odersky
EPFL

Entretien avec le responsable du projet PNR 75.

Quel était l’objectif de votre projet «Langages de programmation pour le Big Data»?

L’EPFL développe depuis 2003 le langage de programmation Scala. Celui-ci est utilisé par des centaines de milliers de développeuses et développeurs à travers le monde. Scala dispose de plusieurs caractéristiques attrayantes qui en font le langage d’implémentation d’une nouvelle génération de «frameworks» (bibliothèques logicielles) pour le Big Data.

Avec notre projet PNR75, nous voulions améliorer la combinaison des langages de programmation et des bases de données. Conformément à la philosophie de Scala, qui est un langage polyvalent, nous avons cherché des moyens de mieux exprimer et exporter des abstractions de programmation de base (des moyens de formuler des tâches essentielles) utilisées dans les interfaces entre les bases de données et les langages de programmation.

Quels résultats ont été obtenus?

Le projet a atteint son principal objectif: intégrer plusieurs nouvelles technologies dans un ensemble cohérent d’abstractions pour l’interfaçage avec les données et valider son utilité dans des projets open source. Les implémentations de ces abstractions sont de qualité suffisante pour être intégrées dans Scala 3, la version majeure actuelle de Scala qui est disponible depuis juillet 2021. Comme Scala 2, Scala 3 est une plateforme prête à la production pour des applications majeures, et pas seulement un langage de recherche.

Quels sont les principaux messages du projet?

  • Nous sommes sur le point de parvenir à un accord sur un ensemble bien compris d’abstractions pour la méta-programmation.
  • Nous avons démontré l’utilité de ces abstractions pour la sérialisation et l’accès aux bases de données, qui sont des éléments clés de la numérisation.
  • Cela ouvre la voie à une intégration plus étroite des langages de programmation et des bases de données à l’avenir, notamment dans les domaines du streaming et du Big Data.

Votre projet comporte-t-il des implications scientifiques?

Notre travail dans le cadre de ce projet a démontré que la recherche scientifique peut avoir une grande influence sur les projets open source pratiques. L’adoption généralisée de logiciels open source dans les universités et l’industrie permet d’accélérer la rétroaction entre les résultats scientifiques et leur évaluation dans la pratique.

Quelles sont les recommandations de votre projet?

Je pense que les politiques devraient reconnaître cet impact sur la société dans leur structure de financement. Concrètement, l’impact de l’adoption massive de l’open source ne devrait plus venir en deuxième position après l’impact des citations. Les travaux scientifiques s’appuient sur les résultats scientifiques antérieurs, et les citations constituent un critère utile. Mais leur impact sur la société et leur évaluation dans la pratique sont tout aussi importants, et nous disposons désormais de nouveaux moyens pour les mesurer.

Je pense notamment qu’une plus grande partie des financements publics devrait être consacrée à l’infrastructure open source. Avec l’avènement de l’open source, nous n’avons plus besoin d’acheter des licences de logiciels coûteuses, mais quelqu’un doit toujours financer les développeuses et les développeurs qui fournissent ces nouveaux logiciels de qualité, et l’open source souffre actuellement d’un sous-financement critique. Prendre l’initiative d’un tel financement permettrait non seulement de fournir un service public important, mais aussi de faire de la Suisse un lieu encore plus attrayant pour les meilleurs développeuses et développeurs et de contribuer ainsi à la numérisation de la Suisse en général.

La notion de «Big Data» est très vague. Pouvez-vous nous expliquer ce qu’elle signifie pour vous?

La notion de «Big Data» désigne la convergence de grands ensembles de données et de programmes les exploitant. Les données peuvent être stationnaires ou traitées sous la forme de flux. Le Big Data dépasse le cadre des bases de données traditionnelles sur des ordinateurs individuels. Il offre davantage d’hétérogénéité et nécessite une intégration plus poussée des bases de données dans les langages de programmation généraux. Les résultats de notre projet ont ouvert la voie à des techniques permettant cette intégration.

A propos du projet

Liens supplémentaires