2

primeiramente gostei bastante do post, todo dia abro o tabnews procurando conteúdo assim, eu também já usei bastante js puro e ts em backend e sempre odeie quando eu dava um console.log (variavel) e eu recebia um undefined.

"Há mas Ts resolve isso", resolve para quem tá programando mas quem vai usar pode enviar o que quiser ou colocar um ts-ignore da vida para calar a boca do linter.

depois que comecei a aprender Rust eu percebi que o que faltava era tipagem estática, isso reduz muitos boilerplates de IFs verificando se o usuário realmente passou um valor válido.

quando falo usuário falo de qualquer ser que vai usar esse código, seja dev ou pessoas comuns

inclusive agora entendo porque falam tanto que Rust é a linguagem mais amada

Carregando publicação patrocinada...
1

Valeu demais pelo comentário.

Esse ponto do undefined em JS/TS é exatamente uma das coisas que me incomodam também.

TypeScript melhora muito a vida de quem está escrevendo o código, mas ele não muda o runtime. No fim, o JavaScript que roda ainda aceita muita coisa torta se a entrada vier de fora: API, formulário, JSON, integração, usuário, outro dev fazendo gambiarra, etc.

É aí que entra uma diferença importante: tipagem estática ajuda muito dentro do programa, mas não substitui validação de fronteira.

Se vem de fora, tem que validar.

O que eu gosto no Rust é que depois que você transforma aquela entrada externa em um tipo válido, o compilador começa a trabalhar a seu favor. Você para de carregar undefined, null, string vazia, valor parcial e estado impossível para dentro do sistema inteiro.

Em JS/TS é muito fácil o código virar um monte de if (!valor), if (data?.x?.y), fallback, checagem defensiva e fé.

Rust força você a modelar melhor:

tem valor ou não tem? Option.

deu certo ou falhou? Result.

esse estado pode existir ou não deveria existir? modela no tipo.

Isso reduz muito aquela programação paranoica em que você fica se defendendo do próprio código.

Acho que é por isso que muita gente gosta tanto de Rust. Não é só performance. É a sensação de que a linguagem te obriga a tirar ambiguidade da mesa antes da bomba chegar em produção.