Télémétrie des erreurs de frappe à grande échelle respectueuse de la vie privée
Author
Venue
L'art, la science et l'ingénierie de la programmation
Abstract
Contexte : Roblox Studio permet à des millions de créateurs de développer des expériences interactives en programmant dans une variante de Lua appelée Luau. Les créateurs forment un groupe très hétérogène, allant des novices écrivant leur premier script aux développeurs professionnels ; Luau doit donc s'adapter à un large public. Dans le cadre de ses efforts pour soutenir tous les types de programmeurs, Luau inclut un système de types optionnel et progressif et met tout en œuvre pour minimiser les fausses alertes. Problématique : Étant donné que Luau est actuellement utilisé par de nombreux créateurs, nous souhaitons collecter des données afin d'améliorer le langage et, en particulier, le système de types. La méthode standard pour collecter des données consiste à déployer une télémétrie côté client ; cependant, nous ne pouvons pas extraire de données personnelles ni d'informations confidentielles, ce qui signifie que nous ne pouvons pas collecter de fragments de code source, de messages d'erreur, ni même de chemins d'accès aux fichiers. Les questions de recherche portent donc sur la manière de mener une télémétrie non invasive et d’en tirer des enseignements sur les erreurs de type. Approche : Nous avons conçu et mis en œuvre un système de télémétrie pseudonymisé à échantillonnage aléatoire pour Luau. Les enregistrements de télémétrie comprennent un horodatage, un identifiant de session, un motif d’envoi et un résumé numérique des analyses de type les plus récentes. Ces informations nous permettent d’étudier les erreurs de type au fil du temps sans révéler de données privées. Nous avons déployé le système dans Roblox Studio au printemps 2023 et avons collecté plus de 1,5 million d'enregistrements de télémétrie provenant de plus de 340 000 sessions. Connaissances : Nous présentons plusieurs conclusions concernant Luau, qui suggèrent toutes que la télémétrie est un moyen efficace d'étudier la pragmatique des erreurs de type. L'une des conclusions les moins surprenantes est que les types graduels optionnels sont peu populaires : il existe un écart de 100 fois entre le nombre de sessions Luau non typées et celui des sessions typées. Une surprise est que le mode strict pour l'analyse de types est trop conservateur en ce qui concerne les interactions avec les ressources de données. Une conclusion rassurante est que l'analyse de types atteint rarement ses limites internes en termes de taille des problèmes. Fondement : Nos conclusions s’appuient sur un ensemble de données de plus de 1,5 million d’enregistrements de télémétrie. Les données et les scripts permettant de les analyser sont disponibles dans un artefact. Importance : Au-delà des avantages immédiats pour Luau, nos conclusions sur les types et les erreurs de type ont des implications pour l’adoption et l’ergonomie d’autres langages graduels tels que TypeScript, Elixir et Typed Racket. Notre conception de la télémétrie présente un intérêt général, car elle rend compte des erreurs de type sans révéler d’informations sensibles.
