Eu não sou Linguocêntrico!

Eu não sou Linguocêntrico!

Booooom, sua cabeça explodiu né?! Acho que você deve fazer o mesmo que eu quando me deparo com uma palavra ou expressão que não conheço, copio e procuro no Google para tentar achar o significado e continuar minha leitura entendendo melhor do que se trata, certo?! Bem, se você fez isso com essa Linguocêntrico provavelmente você não encontrou o significado. (Se encontrou, me manda o link? ou então finge que não encontrou para eu continuar feliz! [risos]) Procurei de várias formas, junto, separado, com hífen e nada. Se ela ainda não existia ou ainda não tinha sido formalmente definida, significa que eu criei uma palavra?! 😱👏🏼 Já zerei a vida, não?! Brincadeiras à parte, vamos ao assunto de hoje.

Vamos analisar a "minha" palavra?! De acordo com o dicionário Priberam, linguo- expressa noção de língua e cêntrico aquilo que está no centro ou tem um centro. Sendo assim, a "minha" palavra quer dizer uma língua central, ou no meu caso precisamente, uma linguagem de programação que está no centro. Definição da palavra?! Check! Então, o que o título do artigo quer dizer? Simples, eu não tenho uma única linguagem de programação que sempre tem os holofotes ou prioridade quando vou iniciar um projeto. Simples assim, gosto um pouquinho do que cada linguagem pode me oferecer (com exceção do Java! [risos] Brincadeiraaaaa, calma! Foi só uma brincadeira!).

Admiro muito quem é especialista em uma linguagem, aquelas pessoas que conseguem fazer mágica com ela, que conhece nos mínimos detalhes a melhor forma de implementar um código para performance, para otimização de tamanho do arquivo executável e outros, mas pessoalmente, realmente gosto de pensar na linguagem e suas particularidades como ferramentas na minha bagagem de resolução de problemas. Gosto muito de experimentar linguagens de programação, frameworks, paradigmas de implementação, estilos de código, enfim, gosto de experimentar. Muitas vezes, estou apenas reproduzindo códigos apresentados em um curso, implementando um projeto simples para aplicar os conceitos e entender as características que a linguagem impõe ou simplesmente lendo código de outras pessoas para aprender mais, mas mesmo sendo um exercício tão simples, eu consigo ver um benefício muito grande, esse processo me ajuda acrescentar itens ao meu portfolio de "coisas que já vi/experimentei". Já precisei escrever um client para envio de e-mail em COBOL e tirei ideias de uma implementação em Java.

Além do benefício de ter um portfolio de soluções/ideias/estilos de forma prática, na minha visão, a experimentação me proporciona outros ganhos importantes:

  • Acelera meu aprendizado/avanço em um assunto. Quando me deparo com conceitos/estilos que tenha alguma similaridade com algo que eu já conheça, percebo que avanço mais rápido por reutilizar conhecimento (Apresentei um pouco dessa característica no meu artigo Tem ABAP aqui no meu programa em Go (GoLang)? )

  • Me impulsiona desenvolver soluções diferentes para problemas idênticos que eu já tenha resolvido. Seja por restrição da linguagem, do paradigma adotado ou pelo contexto do problema, um mesmo conceito pode e muitas vezes deve ser implementado de diferentes formas. Exemplo: O princípio de inversão de dependências(DIP) do SOLID, implementado em uma linguagem com paradigma orientada à objetos, provavelmente, será totalmente diferente de uma implementação em uma linguagem com paradigma funcional e funções de primeira classe.

  • Mapeamento de características técnicas ou usos comuns. Seja pelo propósito de criação da linguagem e quais problemas ela busca resolver, por práticas de mercado ou por alguma limitação, algumas linguagens são melhores ou mais recomendadas para determinados problemas e/ou cenários. Exemplo: Para um projeto de inteligência artificial ou visão computacional, por prática de mercado, provavelmente escolheremos Python como a linguagem principal.

Com tudo isto dito, na minha opinião, acredito que devemos absorver os fundamentos e conceitos da programação, entender os paradigmas e saber muito bem uma linguagem de uso comum, de forma que consigamos utilizá-la para implementar a maior parte de nossas aplicações, mas experimentar outras linguagens é de fundamental importância para o desenvolvimento de nossas habilidades e crescimento profissional. Por isso, não sou Linguocêntrico.