Les langages de programmation évoluent rapidement, et les langages fonctionnels s'imposent comme une solution efficace et viable pour accélérer les développements. Le projet
SEFUNC (Software engineering properties of functionally enabled languages), financé par l'UE, a étudié les avantages de ces nouveaux langages. Il a cherché à déterminer si les caractéristiques fonctionnelles des langages de programmation modernes amélioraient la productivité des développeurs et simplifiaient le code du programme.
Du fait que les études empiriques sur le génie logiciel exigent d'acquérir et de traiter les données de référentiels de logiciels, l'équipe a développé de nouveaux outils pour évaluer les applications actuelles liées aux langages fonctionnels. Elle a mis en place un procédé exceptionnel d'exploration de référentiel permettant d'extraire toutes les données possibles de GitHub, une plateforme renommée pour l'hébergement, la mise en miroir et la collaboration.
Pour atteindre ses objectifs, l'équipe a conçu GHTorrent, un miroir de données hors ligne évolutif et interrogeable, afin d'exploiter la collection de données distribuées via des environnements de développement par pull et de langage visualisé. Une fois la collecte effectuée, les données sont remises à disposition des utilisateurs via la page web du projet, avec plus de 2 téraoctets de données disponibles dans deux formats de base de données. Les chercheurs peuvent ainsi réaliser des études quantitatives complètes de population, dans des domaines tels que les environnements logiciels, la collaboration distribuée et l'exploration de référentiel.
Autre point important, l'équipe a étudié le développement par pull, un nouveau concept de développement de logiciel distribué. Elle a conduit la première analyse quantitative à grande échelle sur le fonctionnement du modèle de développement par pull en, extrayant les données de 300 grands projets ou 170 000 requêtes de pull. Ces activités ont permis de mettre en évidence les facteurs qui affectent la décision de fusionner une requête de pull et le temps mis pour la traiter, et ont apporté des données clés qui devraient aider à améliorer l'efficacité des projets collaboratifs distribués.
Le projet a remporté le prix du «Best data showcase award» lors de la conférence 2013 Mining Software Repositories, pour son utilisation innovante de l'exploration distribuée et le partage de données précieuses avec la communauté. Les travaux du projet ont conduit à la publication de nombreux articles sur le sujet, et été cités comme recherches les plus récentes lors de conférences. Les résultats obtenus contribueront au progrès du génie logiciel et à l'essor rapide des langages fonctionnels.