NewsRoom

Open source pour la data science : les solutions Shiny de Datastorm

R&D 8 décembre 2020

Datastorm met de l’open source dans tous ses projets data. Mais pas seulement. Ses équipes apportent aussi leur contribution à la communauté en développant des packages R. Le point avec Benoit Thieurmel et Thomas Zamojski, Chief Operating et Chief Technical Officer.

Qu’est-ce qui explique la domination des technologies open source en data science ?
Benoit Thieurmel : rappelons déjà ce qu’est un logiciel open source. C’est avant tout une méthodologie de développement dont le code est rendu public. Il peut donc être vu, modifié, enrichi par tous. Cette production partagée entre des dizaines, voire de centaines de développeurs, génère un code de bonne qualité, c’est-à-dire bien structuré, documenté et testé. C’est donc la robustesse et la fiabilité qui expliquent le succès des solutions open source en data science. Plusieurs études ont d’ailleurs démontré que le code open source était globalement de meilleure qualité que le code propriétaire (1).
Thomas Zamojski : tout à fait. La quasi-absence de barrière financière permet à une large communauté de l’adopter et donc de l’enrichir, surpassant rapidement les solutions payantes. Prenons Docker. Cette solution qui permet d’industrialiser des modèles de machine learning a été très largement adoptée en quelques mois. Google a même abandonné sa solution maison (LMCTFY) en faveur de Docker, contribuant à ce dernier en fusionnant les deux projets. L’utilisation des solutions open source accélère clairement les cycles d’innovation et c’est particulièrement vrai en data science, un domaine scientifique au service de multiples applications métiers.

Quels sont les 3 principaux critères qui font la qualité d’une solution open source ?
Thomas Zamojski : d’abord la facilité d’utilisation. Un outil open source doit pouvoir être aisément configuré et installé. Les APIs doivent être simples et intuitives, minimisant le coût d’entrée et facilitant l’adoption de l’outil. Une bonne documentation est absolument indispensable, car elle est le point d’entrée de l’utilisateur. Ensuite, une solution open source doit être robuste et stable. Il y a souvent plusieurs alternatives et un utilisateur pourra se détourner du logiciel au moindre problème. De même, une certaine stabilité dans les APIs est exigée assez rapidement dans le projet : on veut pouvoir se fier au logiciel et se dire que dans six mois notre code fonctionnera toujours malgré les montées en version. Enfin, un bon logiciel open source bénéficie d’un pilotage maîtrisé. Les objectifs, la roadmap et les standards à respecter doivent être définis le plus explicitement possible et disponibles à tout contributeur. Les contributions doivent être les bienvenues et accueillies avec bienveillance, mais sans pour autant accepter tout et n’importe quoi.

L’utilisation des solutions open source accélère clairement les cycles d’innovation

Peut-on mener un projet data science de bout en bout seulement avec des solutions open source ?
Benoit Thieurmel : bien sûr, et c’est ce que nous faisons quotidiennement chez Datastorm. Du stockage (Postgresql, Hadoop, mongodb…) au déploiement (Docker) en passant par l’analyse des données (data.table, shiny, le tidyverse sous R et pandas et scikit-learn en python).

Le monde académique est par nature très attaché au partage de la connaissance, les technologies open source y sont-elles là aussi dominantes… et bien enseignées ?
Benoit Thieurmel : je dirais même que le monde académique est à l’origine de nombreuses technologies open source utilisées aujourd’hui dans les entreprises, comme par exemple le langage R. Ce sont les enseignants qui ont commencé à former les étudiants à ces nouveaux langages et outils, même si cela reste souvent cantonné à des cas d’usage théoriques et forcément incomplets.
Thomas Zamojski : effectivement, les outils open source servent plutôt d’appui aux cours. Généralement, le milieu académique se focalise sur les méthodologies et moins sur leur implémentation que les étudiants expérimentent plutôt lors des projets ou des stages, en situation réelle. Au-delà, nos métiers appellent une part importante d’auto-formation qu’un étudiant en data science doit intégrer dès le début de son cursus.

Datastorm contribue à la communauté open source, notamment sous R. Pour quelles raisons avoir choisi ce positionnement technologique ?
Benoit Thieurmel : nous travaillons quasiment exclusivement avec des outils open source. Il est donc tout à fait naturel pour nous d’essayer d’y contribuer le plus activement possible. Et puis ces projets stimulent la créativité et la capacité d’innovation de nos équipes dont 20 % du temps de travail est consacré à de la R&D. Cela se traduit par la participation à des projets existants comme par exemple le package R dygraphs qui permet de contrôler le timezone d’affichage des données, ou par la création de nouveaux projets. Python est également très présent chez Datastorm et contribuer à la communauté a bien sûr du sens pour nous. Mais je dois reconnaître que R nous a pas mal occupés ces derniers mois !

Justement, quel est le dernier-né de la famille R Shiny chez Datastorm ?
Benoit Thieurmel : et bien nous venons de mettre au monde des triplés ! Trois packages R proposant des modules pour les applications shiny :
Shinybatch : pour la paramétrisation, le lancement de calculs « intensifs » en dehors de la session mère shiny, et la récupération des résultats (https://github.com/datastorm-open/shinybatch).
Shinypivottabler : pour la création, l’édition et la visualisation de tableaux croisés (https://github.com/datastorm-open/shinypivottabler).
Shinydrive : un module de gestion de partage de documents (https://github.com/datastorm-open/shinydrive).
Ils sont actuellement en phase de test sur nos projets clients et seront bientôt déposés officiellement sur le CRAN.

Et le best-seller ?
J’en citerai deux : visNetwork, pour la visualisation interactive de réseaux sous R. Un package qui a déjà plusieurs années d’existence et d’évolutions derrière lui (https://datastorm-open.github.io/visNetwork/). Et shinymanager, pour la gestion simple et sécurisée des utilisateurs pour des applications shiny (https://datastorm-open.github.io/shinymanager/).

(1) https://www.sciencedirect.com/science/article/pii/S1877050915017172