Examinando as Tendências de Adoção de Recursos do TypeScript
Um estudo sobre como os desenvolvedores usam e adotam os recursos do TypeScript.
― 6 min ler
Índice
TypeScript é um tipo de linguagem de programação que se baseia no JavaScript. Tá ganhando destaque porque acrescenta algumas funções úteis. Esse documento analisa quão rápido essas novas funções estão sendo usadas pelos programadores. No mundo do JavaScript, algumas funções podem dar trabalho pros Desenvolvedores quando tentam analisar seu código. Com as atualizações constantes do TypeScript, fica mais complicado acompanhar quais funções estão sendo usadas e como elas impactam o desenvolvimento do código. Esse estudo examina quão populares e rapidamente adotadas várias funções do TypeScript têm sido nos últimos anos.
A Necessidade de Análise
À medida que o TypeScript continua a crescer, entender como os desenvolvedores adotam novas funções se torna importante. Isso não é só por curiosidade; tem implicações práticas pros desenvolvedores e pras ferramentas que eles usam. Algumas ferramentas precisam estar atualizadas com as versões mais recentes do TypeScript pra funcionar bem. A pergunta central que queremos responder é se é necessário que as ferramentas cobrem cada função do TypeScript ou se podem focar só nas mais usadas.
Perguntas de Pesquisa
Esse estudo tem como objetivo responder três perguntas principais:
- Quais novas funções do TypeScript são as mais populares?
- Quão rápido as novas funções são adotadas pelos desenvolvedores?
- Quão rápido os desenvolvedores adotam novas versões do TypeScript em si?
Coletando dados, esperamos esclarecer essas perguntas.
Metodologia
Pra coletar dados, olhamos pra uma variedade de Projetos públicos de TypeScript no GitHub, focando nos mais populares. Coletamos mudanças feitas nesses projetos ao longo de um período de três anos, de 2020 a 2022. Analisamos especificamente como diferentes funções foram usadas nesses projetos. Nos concentramos em mudanças na estrutura da linguagem, ignorando algumas mudanças mais profundas relacionadas à verificação de tipos.
A análise envolveu revisar milhares de mudanças de código e conferir quais funções foram usadas. Observamos a versão do TypeScript que cada projeto usou e notamos quando novas funções apareceram na base de código.
Descobertas
Funções Populares
Depois de revisar os dados, descobrimos que certas funções do TypeScript eram muito mais populares que outras. Duas funções se destacaram: modificadores de tipo pra imports e tipos de template literal. Essas funções foram amplamente adotadas por muitos projetos porque ajudam a resolver problemas específicos que os desenvolvedores enfrentam.
Os modificadores de tipo permitem que os desenvolvedores usem os imports de forma mais eficaz, garantindo que eles tragam apenas as partes necessárias das bibliotecas. Isso pode prevenir efeitos colaterais indesejados no código. Os tipos de template literal acrescentam flexibilidade na definição de tipos, facilitando a criação de tipos complexos.
Por outro lado, algumas funções tiveram adoção bem baixa. Por exemplo, blocos estáticos em classes foram adotados por quase nenhum projeto. Isso sugere que algumas funções não são tão úteis ou necessárias pra maioria dos desenvolvedores.
Taxa de Adoção
Quanto à rapidez com que as funções são adotadas, observamos algumas tendências notáveis. Diferentes funções tinham taxas de adoção diferentes. Algumas funções foram aceitas rapidamente, enquanto outras ficaram pra trás. A maioria das novas funções foi adotada gradualmente, em vez de tudo de uma vez. Parece que muitos desenvolvedores só começam a usar funções quando se tornam cientes delas e quando faz sentido pros seus projetos.
O estudo mostrou um padrão comum: as funções não foram apressadas pra uso. Isso pode indicar que os desenvolvedores são cautelosos ao adicionar novas funções até terem certeza de que elas vão beneficiar seu trabalho.
Adoção de Versões
Quando se trata de adotar novas versões do TypeScript, os resultados mostram uma tendência mais simples. Os desenvolvedores geralmente adotam novas versões do TypeScript rapidamente após seu lançamento. A maioria dos projetos tende a atualizar sua versão do TypeScript dentro de alguns meses após uma nova liberação.
No entanto, tem um detalhe. Embora um projeto possa atualizar pra uma nova versão do TypeScript, isso não significa que eles vão começar a usar novas funções de imediato. Uma nova versão pode ser instalada sem fazer mudanças no código existente. Essa distinção é importante porque mostra como os desenvolvedores interagem com atualizações e melhorias na linguagem.
Comparação com Outras Linguagens
Pesquisas anteriores examinaram como as funções são adotadas em várias linguagens de programação como Java, Python e JavaScript. Alguns estudos focaram em funções dinâmicas, enquanto outros olharam como as funções são usadas em diferentes tipos de projetos. Nosso trabalho acrescenta a esse conhecimento focando especificamente no TypeScript e suas características únicas.
Conclusões
Resumindo, a pesquisa encontrou que enquanto algumas funções do TypeScript são rapidamente adotadas, outras têm dificuldade pra ganhar força. As funções mais populares parecem abordar questões comuns que os desenvolvedores enfrentam, enquanto as menos populares podem oferecer valor limitado. A tendência geral mostra que os desenvolvedores geralmente são rápidos em adotar novas versões do TypeScript, com a adoção de funções individuais sendo mais gradual.
Trabalho Futuro
Esse estudo olhou principalmente pra mudanças sintáticas no TypeScript. Tem muitas outras áreas que poderíamos explorar em pesquisas futuras, como mudanças semânticas e melhorias na experiência do desenvolvedor. Também seria bom analisar uma gama mais diversa de projetos pra ver como a adoção de funções varia entre diferentes tipos de software.
Ao examinar esses aspectos, podemos entender melhor a evolução do TypeScript e como os desenvolvedores podem tirar o máximo proveito dele. Ainda tem muito a aprender sobre a eficácia e a aplicabilidade de novas funções, além de como as ferramentas podem apoiar da melhor forma os desenvolvedores em seu trabalho.
Em conclusão, enquanto as versões do TypeScript estão sendo rapidamente adotadas, as funções individuais que vêm com essas versões nem sempre recebem o mesmo nível de entusiasmo. Isso sugere que, embora seja importante ficar atualizado com novas versões, nem toda função precisa ser amplamente adotada pra que ferramentas e bibliotecas sejam eficazes. Assim, focar em um número menor de funções essenciais pode ser uma abordagem mais prática tanto pros desenvolvedores quanto pra quem cria ferramentas.
Título: TypeScript's Evolution: An Analysis of Feature Adoption Over Time
Resumo: TypeScript is a quickly evolving superset of JavaScript with active development of new features. Our paper seeks to understand how quickly these features are adopted by the developer community. Existing work in JavaScript shows the adoption of dynamic language features can be a major hindrance to static analysis. As TypeScript evolves the addition of features makes the underlying standard more and more difficult to keep up with. In our work we present an analysis of 454 open source TypeScript repositories and study the adoption of 13 language features over the past three years. We show that while new versions of the TypeScript compiler are aggressively adopted by the community, the same cannot be said for language features. While some experience strong growth others are rarely adopted by projects. Our work serves as a starting point for future study of the adoption of features in TypeScript. We also release our analysis and data gathering software as open source in the hope it helps the programming languages community.
Autores: Joshua D. Scarsbrook, Mark Utting, Ryan K. L. Ko
Última atualização: 2023-03-17 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2303.09802
Fonte PDF: https://arxiv.org/pdf/2303.09802
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.