O conteúdo deste site foi traduzido usando inteligência artificial (IA) ou tecnologia de tradução automática e pode conter erros.

Skip to content
Programming Languages
Human Computer Interaction
Data Science

Telemetria de erros de digitação em escala que respeita a privacidade

View Publication

Author

Alan Jeffrey (Roblox), Ben Greenman (Universidade Brown + Universidade de Utah), Shriram Krishnamurthi (Universidade Brown) e Mitesh Shah (Roblox)

Venue

A Arte, a Ciência e a Engenharia da Programação

Abstract

Contexto: O Roblox Studio permite que milhões de criadores construam experiências interativas programando em uma variante da Lua chamada Luau. Os criadores formam um grupo amplo, que vai desde novatos escrevendo seu primeiro script até desenvolvedores profissionais; portanto, o Luau deve atender a um público diversificado. Como parte de seus esforços para apoiar todos os tipos de programadores, o Luau inclui um sistema de tipos opcional e gradual e se esforça ao máximo para minimizar erros de falsos positivos. Questão: Como o Luau está sendo usado atualmente por muitos criadores, queremos coletar dados para melhorar a linguagem e, em particular, o sistema de tipos. A maneira padrão de coletar dados é implantar telemetria do lado do cliente; no entanto, não podemos coletar dados pessoais ou informações proprietárias, o que significa que não podemos coletar fragmentos de código-fonte, mensagens de erro ou mesmo caminhos de arquivos. As questões de pesquisa são, portanto, sobre como conduzir uma telemetria que não seja invasiva e obter insights a partir dela sobre erros de tipo. Abordagem: Projetamos e implementamos um sistema de telemetria pseudonimizado e de amostragem aleatória para o Luau. Os registros de telemetria incluem um carimbo de data/hora, um ID de sessão, um motivo para o envio e um resumo numérico das análises de tipo mais recentes. Essas informações nos permitem estudar erros de tipo ao longo do tempo sem revelar dados privados. Implantamos o sistema no Roblox Studio durante a primavera de 2023 e coletamos mais de 1,5 milhão de registros de telemetria de mais de 340.000 sessões. Conhecimento: Apresentamos várias descobertas sobre o Luau, todas sugerindo que a telemetria é uma forma eficaz de estudar a pragmática dos erros de tipo. Uma das descobertas menos surpreendentes é que os tipos graduais opcionais são impopulares: há uma diferença de 100 vezes entre o número de sessões Luau sem tipos e o número de sessões com tipos. Uma surpresa é que o modo estrito para análise de tipos é excessivamente conservador em relação às interações com ativos de dados. Uma descoberta tranquilizadora é que a análise de tipos raramente atinge seus limites internos em relação ao tamanho do problema. Fundamentação: Nossas descobertas são apoiadas por um conjunto de dados com mais de 1,5 milhão de registros de telemetria. Os dados e os scripts para analisá-los estão disponíveis em um artefato. Importância: Além dos benefícios imediatos para o Luau, nossas descobertas sobre tipos e erros de tipo têm implicações para a adoção e a ergonomia em outras linguagens graduais, como TypeScript, Elixir e Typed Racket. Nosso projeto de telemetria é de amplo interesse, pois relata erros de tipo sem revelar informações confidenciais.