Executando verificação de segurança...
6

Por que tipar em linguagens dinamicamente tipadas?

No início da minha jornada como DEV eu não entendia porque declarar os tipos das variáveis em liguagens como PHP e Python... até que um dia... em um daqueles projetos onde era uma terra sem lei... eu não conseguia me achar...

O que vou escrever aqui pode não fazer sentido para muitos DEVs, assim como não fazia sentido para mim nos meus primeiros passos, mas vou tentar explicar meu ponto de vista. Não leve como verdade absoluta... rsrsrsrs

É muito bom ter assinaturas claras de funções e métodos de uma classe

Saber o tipo das variáveis de entrada e o retorno da saída poupa muitos ifs no meu código. Nesse ponto, trabalhar com interfaces e classes abstratas fez muito sentido para mim.

A IDE passou ser minha amiga

Começar tipar as entradas e saídas fez o VSCode ficar "mais esperto", sendo muito mais assertivo nas sugestões de auto complete, eu me vi ficando muito mais produtivo.

Menos BUGS

O número de BUGs diminuiu consideravelmente com um código mais previsível. Trabalhar em equipe foi mais fácil. Ficava mais clara a intenção no código dos outros DEVs, ficava mais clara minha intenção.

Tipar as coisas força pensar mais antes de codar

No meu caso, eu precisei modelar melhor minhas classes, eu não queria ter retorno nulo nos meus métodos, ou poder retornar mais de um tipo... então eu precisei começar pensar em como as classes se relacionam antes de descer a mão em código.

Conclusão

Olhando para trás, eu acho que não seria bem sucedido começando com linguagens que te forçam ter uma bagagem grande para começar a ver as coisas acontecerem.
Liguagens permissivas como PHP me permitiu colocar no ar uma aplicação em poucos dias, sem ter muito conhecimento, não tinha uma barreira grande de entrada.

Eu sinto vergonha de ver um código escrito por mim anos atrás?
Sim... nego a paternidade... rsrsrsrs

Mas isso foi o primeiro passo... me motivou a seguir em frente... Ler bons livros, posts, papers e seguir bons influencers ajudou abrir a mente.

Falar mal de uma linguagem, de um código ou de qualquer coisa sem um contexto limita muito... caro DEV, não se limite à preconceitos em nada na sua vida!!!

Carregando publicação patrocinada...
5

Todos os bons programadores sabem disso. Até por existir estudos sobre. Em geral sabem até quando violar isso ou quando o contexto pede algo mais simples. Os programadores ruins não sabem e possuem a crença que estão usando algo mais "fácil". E isso é um enome problema.

As linguagens já "perceberam" isso e estão indo para tipagem estática, de uma forma ou de outra, até mesmo com outra em cima dela, para atender essa necessidade.

Eu discordo sobre você ser bem sucedido porque conheço muita gente que foi começando pelas linguagens mais difíceis. Bem sucedido é algo muito subjetivo, mas eu vejo, no meu critério, poucas pessoas serem realmente bem sucedidas começando com uma linguagem mais simples. Eu vejo algum nível de sucesso, mas ela passa ter um limite. Não que esse limite não possa ser superado, mas não é tão comum. A pessoa pega um monte de vício que nunca mais conserta. Por sorte a pessoa pode se considerar bem sucedida porque hoje existem ambientes bem pouco exigentes e só importa entregar algo. Obviamente eu estou falando no geral, de ninguém em específico.

Eu não sou anônimo aqui, podem me pesquisar e saber se tenho credibilidade para dizer algo sobre isso. Em geral estou à disposição publicamente na plataforma (não dá pra responder no pvt, todo dia muitos mandam mensagem).

Ajudei? Era o meu desejo.


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria). Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).

1

Concordo contigo e já ouvi em alguns posts o termo de amador remunerado se referindo a muitos DEVs que se apegam a uma ferramenta sem entender bem o conceito e desenvolvem sem se preocupar muito com convenções da comunidade ou boas práticas... mas isso daria outra boa discussão... rsrsrs

2

Falando de maneira geral, as vantagens de se ter tipagem estática são mais evidentes em bases de código grandes (sendo que "grande" é relativo e subjetivo, mas enfim).

Sobre o assunto, recomendo este post muito interessante que explica porque bases de código grandes são mais fáceis de manter com tipagem estática.

Tanto que não é por coincidência que muitas linguagens de tipagem dinâmica que passaram a ser usadas para projetos grandes começaram a adicionar tipos (PHP e Python o fizeram na própria linguagem, para JavaScript optaram por criar outra linguagem "compatível" - na verdade TypeScript é transpilada para JavaScript - só pra ficar em alguns exemplos).

1

post interessante... vi que o autor cita o fato de liguagens fortemente tipadas facilita o uso de ferramentas de detecção de erros... era um ponto que não tinha pensado antes... vou ler novamente com mais calma...

1

O Eric Lippert é um dos maiores fenômeos da computação.

E aproveitando aqui para não fazer um comentário muito curto lá no outro, o term oque voê pegou é de autoria do Elemar Jr, um dos maiores do Brasil (e por que não do mundo?) e tenho a sorte dele ser meu amigo.

1