Nos resultados da Pesquisa de Desenvolvedores 2020, uma das estatísticas mais acompanhadas é a Linguagem Mais Amada. Como tem sido há vários anos, Rust é o número um. Mas chegando no número dois é TypeScript, um superconjunto fortemente digitado de JavaScript, afiando Python por um fio de cabelo. Queríamos descobrir o que o TypeScript o torna tão amável, então entramos em contato com Ryan Cavanaugh, o principal líder de engenharia para a linguagem TypeScript na Microsoft. Ele foi generoso o suficiente para se sentar e responder nossas perguntas. Sem mais delongas, aqui estão nossas conversas, editadas levemente para clareza.
P: Há quanto tempo você está na equipe TypeScript?
R: Comecei na equipe TypeScript cerca de seis meses antes do nosso lançamento inicial, em fevereiro de 2012. Estou trabalhando nisso há oito anos.
P: Interessante, tão perto do início. Você se lembra por que a equipe veio com TypeScript, por que você queria lançar algo assim?
R: Quando entrei para a equipe, havia muitas pessoas na Microsoft que queriam desenvolver o JavaScript no que chamamos de “escala de aplicativos”. Equipes como TFS e Office queriam construir grandes aplicativos JavaScript. Muitas dessas pessoas tinham familiaridade com línguas estaticamente digitou: C++, C#, Java, esse tipo de coisa. Eles queriam ter essa digitação estática disponível tanto para escalabilidade conceitual quanto para a ferramentaria.
Os especialistas em idiomas da Microsoft olharam para a situação e disseram, bem, poderíamos tentar escrever uma nova linguagem como as pessoas tinham feito antes. Existem projetos como script#, que pega C afiado e transforma-o em JavaScript, ou linguagens como CoffeeScript que diziam, e se JavaScript tivesse uma sintaxe diferente? Mas o que eles decidiram em vez disso foi apenas pegar JavaScript e adicionar tipos estáticos em cima disso.
Na época, JavaScript estava experimentando um renascimento do crescimento, onde eles estavam adicionando recursos à língua novamente pela primeira vez em muito tempo. As pessoas queriam usar esses novos recursos legais, como funções de seta e classes, e não queriam esperar que todos os navegadores os adotassem. Eles queriam ser capazes de usar esses recursos imediatamente. Acho que essas foram as três coisas que o TypeScript ofereceu antecipadamente: digitação estática para fins de erro, aproveitando essas informações do tipo estático para ferramentas e fornecendo os recursos JavaScript de amanhã, hoje.
P: Houve um ponto em que você viu um ponto de adoção sem retorno? Havia algo que surgiu onde as pessoas estavam como, oh, sim, nós fazemos TypeScript agora?
R: Oh, foi definitivamente o Google anunciando que eles iam usar TypeScript com Angular. Isso está meio perdido para o tempo agora. Mas se você olhar para os gráficos do TypeScript, literalmente qualquer gráfico — estrelas do GitHub, downloads, pedidos de tração — você pode ver o ponto exato quando o anúncio do Angular saiu. E o gráfico só muda. Nunca olha para trás. Você não pode mais ver aquela pequena curva na curva porque a curva continuou. Foi um verdadeiro ponto de inflexão. E eu acho que tem sido interessante que as pessoas pensaram na época que o TypeScript seria exatamente o que as pessoas angulares usam e não muito mais. Não acabou sendo o caso. Obviamente, ainda somos populares entre os devs angulares. Mas isso foi um verdadeiro construtor de impulso para nós.

P: Em nossa pesquisa de desenvolvedor mais recente, TypeScript é a linguagem número dois mais amada,subindo nasfileiras. Por que acha que as pessoas gostam tanto?
R: Hein? Porque é ótimo!
P: Eu acho que precisamos de uma resposta que possamos defender objetivamente.
R: Fundamentalmente, JavaScript recebe um rap ruim como uma língua, mas é realmente muito divertido trabalhar com. Ele permite que você seja um pouco dinâmico às vezes e um pouco mais intencional às vezes. É apenas uma ótima linguagem funcional. Mas a falta de verificação do tipo estático realmente inibe a capacidade das pessoas de escrever coisas que elas podem estar confiantes funcionarão antes de executá-lo.
O TypeScript sustenta essa última vantagem áspera no JavaScript e lhe dá algo que é muito divertido de trabalhar e funciona em todos os lugares. Eu acho que se o TypeScript fosse uma linguagem que foi construída em cima de uma linguagem menos universal ou uma linguagem menos divertida, eu não acho que seria tão bem sucedido. É realmente pegar algo que é ótimo e torná-lo melhor.
P: Parece que a digitação estática é uma espécie de ter um momento agora. Eu vi um monte de comentários sobre apreciar o pato digitando em Rust, as dicas em Python. Por que acha que a digitação estática é tão popular agora?
R: Eu acho que porque as pessoas tentaram construir grandes aplicações sem ele e viram como é doloroso. Quero dizer, a mesma coisa está acontecendo com hack no Facebook, onde eles estão adicionando tipos ao PHP. Então eu acho que as pessoas perceberam que você pode escrever um pequeno programa sem digitação estática muito facilmente, mas você rapidamente atingiu um limiar onde, sem ele, as coisas se tornam muito dolorosas. É muito difícil argumentar quando você está tentando mantê-los e adivinhando digitar e tal.
Acho que a minha coisa favorita que vejo são as pessoas na Internet dizendo: ‘Eu fiz essa grande refatoração no TypeScript e eu estava refatorando por três horas. E então eu corri o meu código e funcionou da primeira vez. Em uma linguagem dinâmica, isso nunca, nunca aconteceria. Há um elemento muito satisfatório para ser feito quando o verificador tipo diz que você está feito. Isso pode ser apenas 85% preciso. Mas isso é muito melhor do que zero. É uma maneira muito melhor de se desenvolver, especialmente durante uma grande reformulação como essa.
P: Eu vi algumas pessoas resistentes à digitação estática. Você acha que há um lugar para a digitação mais dinâmica?
R: Eu acho que sim. Quero dizer, é um grande mundo de programação lá fora. Eu não ach
.png)
.png)
.png)
.png)