Uma das cisão mais longas na programação é a de tipagem estática versus dinâmica. Ouvi um milhão de argumentos dos dois lados ao longo de toda a minha carreira, mas vi pouquíssimos convencerem alguém de algo. Como racionalizações disfarçadas de razão raramente fazem em questões de fé. O cavaleiro sempre justificará o caminho do elefante. Isso não quer dizer que não existam pessoas que mudaram de campo. Na verdade, esses indivíduos geralmente gritam as racionalizações mais altas de todas. Muitas vezes com o charme de um onívoro de longa data que de repente se torna vegano ou de um banqueiro tradicional que teve uma experiência de sorte com criptomoedas. Quanto mais curta a fé, mais brilhante a chama. Pessoalmente, sou um cara que digita muito mais e não tenho vergonha. É por isso que eu amo tanto a Ruby. Ele aproveita ao máximo a tipagem dinâmica para permitir a sintaxe poética que resulta em um código tão belo. Para mim, Ruby com digitação explícita e estática seria como uma salada com uma bola de sorvete. Elas simplesmente não combinam. Também confesso que já adotei a posição evangélica da digitação dinâmica no passado. A ponto de sofrer de uma aflição da Uma Verdadeira Proposição. Vendo a falta de entusiasmo pela digitação dinâmica como um reflexo da falta de educação, experiência ou talvez até mesmo competência. Ah, que loucura. Como tentar convencer um introvertido de que ele realmente gostaria de festas se ele só relaxasse um pouco. Que na verdade é muito divertido ficar em salas lotadas, por horas a fio, gritando para se comunicar, porque que tal essa vibe! Hoje em dia, passei a apreciar a magnificência da multiplicidade. Programar seria um esforço terrível se todos estivéssemos confinados ao mesmo paradigma. A natureza humana é muito variada para aceitar tal limitação à sua criatividade. Você consegue imaginar se toda a arte visual tivesse que ser representada no estilo do cubismo? Ou realismo? Ou todos os romances escritos no estilo curto e direto de Hemingway? Que tédio tudo isso logo se tornaria! Isso arruinaria a magia da programação. Essa fusão única de arte e engenharia. Mas demorou um pouco para eu chegar a essas conclusões. Sou um solucionista em recuperação. Então, quando vejo as pessoas cruzando o coração com descrença de que alguém, em qualquer lugar, possa preferir JavaScript em vez de TypeScript, sorrio, e lembro dos dias em que reconhecia o entusiasmo delas no espelho. Isso não quer dizer que todas as abordagens de programação se resumam a mentalidades iguais, mas diferentes. Existem limites para esse relativismo. Mas tipagem dinâmica versus estática é certa dentro de seus limites. O mesmo vale para programação funcional versus orientada a objetos. Os postes em ambos os eixos mostraram entregar um software excelente ao longo das décadas (e coisas horríveis também!). Agora, as pessoas são abençoadas com a capacidade de se expressar igualmente bem de ambos os lados. Essa natureza ambidestra parece rara, porém, como evidenciado pela total descrença tão frequentemente expressa por um dos lados de que o outro poderia manter uma posição razoável. Não sou ambidestro. Não gosto de digitação estática, e objetos animam meu olho mental. Mas passei a valorizar o fato de que outros iluminam sua criatividade com tanta intensidade quanto eu ilumino a minha, usando restrições de programação funcional e tipos explicitamente definidos. Desde que eu nunca precise sujar meu Ruby com dicas de tipo ou escrever todo código front-end em TypeScript, posso coexistir muito feliz com quem adora Go ou não suporta JavaScript. Vive la différence!