Ruby: uma das minhas linguagens de programação preferidas, e uma das linguagens mais bonitas que eu já usei. Com uma sintaxe flexível e simples, a linguagem japonesa possui inúmeros fãs espalhados mundo afora e uma comunidade bem ativa. Porém, apesar de seus atrativos, a linguagem Ruby parece ter dificuldades em expandir seus adeptos atualmente, principalmente em novos empreendimentos. Por quê?
Eu tomei a liberdade de falar com alguns empresários, desenvolvedores sênior e professores da minha universidade, e cheguei a alguns motivos.
A melhor em nada
Quer programar para desktop? Tem Java, C, C++, Rust e muitas outras melhores que Ruby. Quer fazer games? GDScript, C#, Javascript e várias outras. Quer programar web? Pode usar Node, PHP, Python… A verdade é que, embora Ruby tenha popularizado o padrão MVC e mudado completamente a forma como muitas pessoas desenvolvem seus sistemas, a linguagem em si não é a melhor em nada. O nicho dela tem como foco ser extremamente compreensível mesmo para o público mais leigo, porém esse tipo de nicho já é assumido pelo Python, que é mais popular.
Bonita e lenta
A linguagem Ruby, mesmo sendo muito linda, possui um grande problema: desempenho. Por ser uma linguagem totalmente interpretada, sua execução é mais lenta que uma linguagem compilada ou que possua trechos pré-compilados para bytecode, o que torna mais caro manter um sistema em Ruby do que em Python ou em PHP (que teve optimizações significativas graças a influência de big techs que a utilizam), obrigando empresas que desejem manter sistemas em Ruby a gastar mais com recursos de hardware.
De volta ao problema do Perl
A linguagem de programação Perl, conhecida por sua versatilidade na internet, apesar de sua versatilidade, possui uma legibilidade ruim, e um dos motivos é justamente sua estrutura extremamente flexível. A estrutura do Ruby, apesar de ser facilmente compreensível ao ler linha a linha, requer muita atenção, pois com uma facilidade imensa a estrutura inteira do código pode virar um grande emaranhado. Isso acaba sendo uma grande desvantagem para a linguagem, já que dificulta o estabelecimento de padrões bem estabelecidos dentro de uma corporação, ainda mais se compararmos com outra linguagem com grandes semelhanças: o Python.
O Python também é uma linguagem muito bonita e simples. Desenvolvido com o objetivo de ser fácil de ler e programar, o Python tem uma sintaxe muito mais rígida, dificultando a criatividade na construção de padrões dentro de um programa, o que gera quase automaticamente um padrão dentro da empresa, o que contrasta com a sintaxe do Ruby, que permite muito mais flexibilidade. Até mesmo em linguagens que permitem mais flexibilidade, como PHP ou Java, a sintaxe é mais rígida, e isso dificulta bastante a “criatividade” na hora de estabelecer padrões.
Em compensação…
Apesar das desvantagens, o sistema de gerenciamento de pacotes do Ruby (as “gems”) é extremamente eficiente, principalmente ao compararmos com outros gerenciadores, como o NPM (Node) e o Composer (PHP). Seus pacotes também são muito utilizados para compartilhamento de programas simples, assim como ocorre com o NPM, e sua sintaxe, por ser fácil de compreender por qualquer um que o leia com atenção (embora não seja exatamente legível), torna fácil até mesmo para iniciantes poderem participar do desenvolvimento de projetos mais complexos.
Conclusão
Por estes motivos, apesar de suas vantagens, a linguagem Ruby estagnou em um patamar onde o seu volume total de desenvolvedores ativos não aumenta tanto quanto antigamente. Isso não significa que a linguagem está morta, nem mesmo que ela irá morrer em breve, apenas que talvez a abordagem atual no desenvolvimento da linguagem não seja a ideal. Aplicações como o Redmine, por exemplo, são altamente competitivas mesmo utilizando o Ruby on Rails, o que comprovam que tais fatores não são nem nunca serão um impeditivo, mas é importante compreendermos as motivações por trás dos que não possuem amor pela linguagem para compreendermos as motivações pela estagnação no crescimento.
Lembrando que isso foi uma pesquisa individual e completamente informal, e pode não refletir a realidade em grande parte das regiões.
E aí, concorda? Discorda? Você também é um apreciador e entusiasta dessa bela linguagem? Conta pra mim nos comentários 😊😄