TypeScript: usar ou não usar? Eis a questão
Tendo começado com JavaScript (JS) e depois Python, Go foi a minha primeira linguagem com uma verdadeira verificação estática. Já há algum tempo me vinha perguntando se deveria ou não integrar o TypeScript (TS) nos meus projectos. Para um dos projectos que de certa forma justificaria o uso de tipos (types), o meu colega, com mais conhecimento técnico e experiência, decidiu que usaríamos vanila JS; isso porque, i) já havíamos iniciado o projecto — sei que TS pode ser integrado a qualquer momento —, e, ii) “…verás que não te será tão útil assim…”. Decisão tomada, fim da conversa.
Bem, talvez não!
O loop de JS sempre termina em TS. Os coders que opinam nas redes sociais e blogs falam-nos de TS todos os dias. E até podem ter razão, muitos são profissionais. No inquérito do StackOverflow 2023, para a categoria de “linguagens de programação, script e marcação”, de um total de 87.585 respondentes, 63,61% usam JS (primeiro lugar). TypeScript encontra-se na quinta posição com 38,87%, atrás de SQL, Python e HTML/CSS. Já para os profissionais (67.053), as duas mantendo-se nas mesmas posições, JS subiu dois pontos para 65,82%, enquanto TS saltou cinco para 43,75%. No grupo dos que estão a aprender programação (4.905 respondentes), previsivelmente, 21,18% programam em TS e 60,51% em JS.
Se tentarmos prever o futuro, não é de todo impensável ver a maioria dos principiantes a ir directo com TS; mas, neste momento, muitos de nós começamos com vanila JS. Uma das razões directas para tal é que muito do código existente está em JS. Ademais, a importância de TS fica clara depois de escrever programas em JS.
Para autodidatas como eu, nos primeiros meses ~ anos, é muita coisa sobrevoando o espaço, clamando pela nossa atenção. Consequentemente, lá fui adiando… adiando… e adiando, ciente da energia que gastaria no processo. No fundo, o obstáculo real era a falta de um novo projecto no qual eu tivesse um poder decisório.
Até que apareceu: experimentar Svelte. Sei que ler os docs, diga-se breves e bem escritos, sem meter a mão na massa, não é suficiente. Assim, quando terminei o Learn Svelte Tutorial, feito pelos criadores de Svelte, decidi adoptar SvelteKit como a ferramenta para desenvolver este website/blog. E aí veio a pergunta: tipos ou não?
Muito recentemente, em virtude de uma mistura de falha na comunicação e julgamento rápido, Rich Harris, o criador de Svelte, esteve debaixo do fogo, pelo facto de o seu grupo de trabalho abandonar TS para exclusivamente usar JSDoc. Mais tarde, ele veio explicar que, para casos de frameworks, vanila JS é mais productivo pois facilita o acesso ao programa original durante uso (rápida consulta, logs, etc.). E para os utilizadores do framework, TS continuaria uma das opções na configuração inicial do npm create svelte@latest.
Depois de debicar uns grãos de Svelte/Kit e TS, e ultrapassar a urgência de colocar any em todo o lado, há um tempo incalculável que se poupa com o conhecimento a priori dos tipos de argumentos que cada função leva e dos valores que ela retorna, e com a capacidade de travar os golpes lançados por certos erros sintáticos e pela maioria dos erros comuns que prazerosamente JS deixaria passar. Mais importante, neste pequeno wbsite/blog, a combinação SvelteKit e TS está maningue nice.