Privacyvriendelijke telemetrie van typefouten op grote schaal
Author
Venue
De kunst, wetenschap en techniek van het programmeren
Abstract
Context: Met Roblox Studio kunnen miljoenen makers interactieve ervaringen bouwen door te programmeren in een variant van Lua, genaamd Luau. De makers vormen een brede groep, variërend van beginners die hun eerste script schrijven tot professionele ontwikkelaars; daarom moet Luau een breed publiek ondersteunen. Als onderdeel van de inspanningen om alle soorten programmeurs te ondersteunen, bevat Luau een optioneel, geleidelijk typesysteem en doet het er alles aan om valse positieve fouten tot een minimum te beperken. Vraagstelling: Aangezien Luau momenteel door veel makers wordt gebruikt, willen we gegevens verzamelen om de taal en, in het bijzonder, het typesysteem te verbeteren. De standaardmanier om gegevens te verzamelen is het inzetten van client-side telemetrie; we mogen echter geen persoonlijke gegevens of vertrouwelijke informatie scrapen, wat betekent dat we geen broncodefragmenten, foutmeldingen of zelfs bestandstrajecten kunnen verzamelen. De onderzoeksvragen gaan dus over hoe we telemetrie kunnen uitvoeren die niet invasief is en daaruit inzichten kunnen verkrijgen over typefouten. Aanpak: We hebben een gepseudonimiseerd, willekeurig bemonsterend telemetriesysteem voor Luau ontworpen en geïmplementeerd. Telemetrierecords bevatten een tijdstempel, een sessie-id, een reden voor verzending en een numerieke samenvatting van de meest recente typeanalyses. Met deze informatie kunnen we typefouten in de loop van de tijd bestuderen zonder privégegevens te onthullen. We hebben het systeem in het voorjaar van 2023 in Roblox Studio geïmplementeerd en meer dan 1,5 miljoen telemetriegegevens verzameld uit meer dan 340.000 sessies. Bevindingen: We presenteren verschillende bevindingen over Luau, die allemaal suggereren dat telemetrie een effectieve manier is om de pragmatiek van typefouten te bestuderen. Een van de minder verrassende bevindingen is dat opt-in geleidelijke typen niet populair zijn: er is een 100-voudig verschil tussen het aantal ongetypeerde Luau-sessies en het aantal getypeerde sessies. Een verrassing is dat de strikte modus voor typeanalyse overdreven conservatief is wat betreft interacties met data-assets. Een geruststellende bevinding is dat typeanalyse zelden tegen zijn interne limieten aanloopt wat betreft de omvang van het probleem. Grondgedachte: Onze bevindingen worden ondersteund door een dataset van meer dan 1,5 miljoen telemetrieregistraties. De gegevens en scripts voor de analyse ervan zijn beschikbaar in een artefact. Belang: Naast de directe voordelen voor Luau hebben onze bevindingen over typen en typefouten implicaties voor de acceptatie en ergonomie in andere graduale talen zoals TypeScript, Elixir en Typed Racket. Ons telemetrieontwerp is van breed belang, aangezien het rapporteert over typefouten zonder gevoelige informatie prijs te geven.
