Telemetria degli errori di digitazione su larga scala nel rispetto della privacy
Author
Venue
L'arte, la scienza e l'ingegneria della programmazione
Abstract
Contesto: Roblox Studio consente a milioni di creatori di realizzare esperienze interattive programmando in una variante di Lua chiamata Luau. I creatori formano un gruppo eterogeneo, che spazia dai principianti che scrivono il loro primo script agli sviluppatori professionisti; pertanto, Luau deve supportare un pubblico ampio. Nell'ambito dei suoi sforzi per supportare tutti i tipi di programmatori, Luau include un sistema di tipi graduale opzionale e fa di tutto per ridurre al minimo gli errori di falso positivo. Domanda: Poiché Luau è attualmente utilizzato da molti creatori, vogliamo raccogliere dati per migliorare il linguaggio e, in particolare, il sistema di tipi. Il modo standard per raccogliere dati è implementare la telemetria lato client; tuttavia, non possiamo raccogliere dati personali o informazioni proprietarie, il che significa che non possiamo raccogliere frammenti di codice sorgente, messaggi di errore o persino percorsi di file. Le domande di ricerca riguardano quindi come condurre una telemetria non invasiva e ottenere da essa informazioni sugli errori di tipo. Approccio: Abbiamo progettato e implementato un sistema di telemetria pseudonimizzato e a campionamento casuale per Luau. I record di telemetria includono un timestamp, un ID di sessione, un motivo dell'invio e un riepilogo numerico delle analisi di tipo più recenti. Queste informazioni ci consentono di studiare gli errori di tipo nel tempo senza rivelare dati privati. Abbiamo implementato il sistema in Roblox Studio nella primavera del 2023 e raccolto oltre 1,5 milioni di record di telemetria da oltre 340.000 sessioni. Conoscenze: presentiamo diversi risultati su Luau, che suggeriscono tutti che la telemetria sia un modo efficace per studiare la pragmatica degli errori di tipo. Uno dei risultati meno sorprendenti è che i tipi graduali opt-in sono poco popolari: c'è un divario di 100 volte tra il numero di sessioni Luau non tipizzate e quello delle sessioni tipizzate. Una sorpresa è che la modalità rigorosa per l'analisi dei tipi è eccessivamente conservativa riguardo alle interazioni con le risorse di dati. Un risultato rassicurante è che l'analisi dei tipi raramente raggiunge i propri limiti interni in termini di dimensione del problema. Fondamento: I nostri risultati sono supportati da un set di dati di oltre 1,5 milioni di record di telemetria. I dati e gli script per analizzarli sono disponibili in un artefatto. Importanza: Al di là dei benefici immediati per Luau, le nostre scoperte sui tipi e sugli errori di tipo hanno implicazioni per l’adozione e l’ergonomia in altri linguaggi graduali come TypeScript, Elixir e Typed Racket. Il nostro design della telemetria è di ampio interesse, poiché riporta gli errori di tipo senza rivelare informazioni sensibili.
