Tipar ou não tipar?

Isac
React Brasil

--

Introdução à tipagem em Javascript

O desenvolvimento com a linguagem Javascript está presente em praticamente tudo que utilizamos no nosso dia a dia. Sim, praticamente tudo que você visualiza no seu navegador utiliza Javascript, inclusive este blog.

Todos os grandes players utilizam Javascript em suas plataformas, não somente em front-end mas também, ele já possui seu espaço no back-end junto ao NodeJS.

Porque Javascript é tão popular ?

Acredito que o ponto central para esta reposta esteja na internet, quando mencionei internet, eu quis mencionar que o Javascript está diretamente ligado a internet, e a popularidade da linguagem se deve a isto. JavaScript se tornou um sucesso por ser simples e principalmente por ter transformado navegadores em plataformas onde podemos criar aplicações modernas e robustas.

Porque prover tipos ao Javascript visto o sucesso já constatado?

Existem diversos pontos que serão relatados e que fazem disto algo realmente viável:

  • Tipos nos dão uma maior confiabilidade a aplicação
  • Menor dor na refatoração e manutenção da sua code base.
  • Tipos nos ajudam a evitar bugs em tempo de escrita, isso evita erros em runtime.
  • Tipos nos proveem uma documentação de forma indireta.
  • Não precisamos temer os tipos visto que no final teremos o nosso Javascript como resultado final.

Escrita

Sempre que há uma discussão sobre, alguém menciona que com tipos você precisará escrever mais e isso é realmente uma verdade. Por ser uma linguagem segura, você precisa mencionar e escrever de uma forma que sua aplicação tenha conhecimento de como se comportar. Este é um custo benefício que a linguagem nos traz e pode ser o fator de uma certa resistência de desenvolvedores Javascript mas em contra partida, você terá uma aplicação mais segura.

Uma melhor adequação e integração de novos desenvolvedores também são um dos recursos que podem ser ponderados. É mais fácil compreender a sua code base, onde como já mencionamos acima, existe toda uma auto documentação que é provida pela declaração dos tipos.

Produtividade

Pode parecer controverso, mas mesmo tendo a necessidade de escrevermos mais, durante um tempo você verá que a produtividade será uma grande verdade. Os tipos nos auxiliam muito na integração com a linguagem, evitando muitas vezes nos depararmos com dúvidas simples sobre o que uma determinada função tem como dever em nossa base e até mesmo com o auto complete que o intellisense nos oferece. Esses e outros recursos poderão ser notados e todos visam trazer uma maior segurança a você e ao usuário final que utilizará sua aplicação.

Qual static type checking escolher?

Hoje no ecossistema Javascript possuímos duas possibilidades de escolha mais utilizadas que são o Flow e Typescript. Ambos são projetos open sources que possuem a mesma finalidade, prover tipos ao Javascript.

Flow é mantido e criado pelo Facebook, estando presente em diversas ferramentas e também no uso interno de produtos do Facebook. Do outro lado temos o Typescript que foi criada e mantido pela Microsoft.

Quando mencionei que o Facebook utiliza o seu próprio static type check(Flow) em seus produtos é uma grande verdade, porém, ultimamente eles começaram a reescrever e utilizar Typescript internamente. Isto demonstra o grande poder da ferramenta e a força que mesma está tendo na comunidade Javascript e confirma a sua popularidade.

Hoje na minha opinião, acredito que os maiores recursos e maturidade estão presentes no Typescript e por este motivo apontaria este como a melhor solução entre as duas opções. Quando a comunidade está aliada a uma determinada tecnologia, isso traz diversas vantagens como a colaboração, resolução de problemas e uma menor curva de aprendizado.

E agora? Devo reescrever minha aplicação?

Acredito que se fizer sentido ao seu cenário, você deve e pode dar uma chance ao Typescript e isso pode ocorrer de forma gradual. Não necessariamente você terá que reescrever todo o seu código para começar a utilizar Typescript. Existe a possibilidade de a partir de um determinado ponto você começar a utilizar Typescript em seu projeto.

Para mais informações você poderá consultar a documentação oficial do Typescript em: https://www.typescriptlang.org/docs/home.html

Onde me encontrar:

--

--