English Version
Ruby: one of my favorite programming languages, and one of the most beautiful languages I've ever used. With a flexible and simple syntax, the Japanese language has numerous fans around the world and a very active community. However, despite its attractions, the Ruby language seems to have difficulties in expanding its supporters today, especially in new ventures. Because?
I took the liberty of talking to some entrepreneurs, senior developers, and professors at my university, and I came up with a few reasons.
The best at nothing
Want to program for desktop? It has Java, C, C++, Rust and many others better than Ruby. Want to make games? GDScript, C#, Javascript and many others. Want to program web? You can use Node, PHP, Python… The truth is that, although Ruby popularized the MVC pattern and completely changed the way many people develop their systems, the language itself is not the best at anything. Its niche is focused on being extremely understandable even for the layman audience, but this kind of niche is already taken over by Python, which is more popular.
Beautiful and slow
The Ruby language, even though it is very beautiful, has one big problem: performance. As it is a fully interpreted language, its execution is slower than a compiled language or that has precompiled snippets for bytecode, which makes it more expensive to maintain a system in Ruby than in Python or PHP (which had significant optimizations thanks to influence of big techs that use it), forcing companies that want to maintain systems in Ruby to spend more on hardware resources.
Back to the Perl problem
The Perl programming language, known for its versatility on the internet, despite its versatility, has poor readability, and one of the reasons is precisely its extremely flexible structure. Ruby's structure, despite being easily understandable when reading line by line, requires a lot of attention, because with immense ease the entire structure of the code can become a big tangle. This ends up being a major disadvantage for the language, as it makes it difficult to establish well-established standards within a corporation, even more so if we compare it to another language with great similarities: Python.
Python is also a very beautiful and simple language. Developed with the goal of being easy to read and program, Python has a much stricter syntax, making it difficult to be creative in building patterns within a program, which almost automatically generates a pattern within the company, which contrasts with the syntax of Ruby, which allows for much more flexibility. Even in languages that allow more flexibility, such as PHP or Java, the syntax is more rigid, and this makes “creativity” very difficult when it comes to establishing standards.
In return…
Despite the disadvantages, Ruby's package management system (the “gems”) is extremely efficient, especially when compared to other package managers such as NPM (Node) and Composer (PHP). Its packages are also widely used for sharing simple programs, as is the case with NPM, and its syntax, being easy to understand by anyone who reads it carefully (although not exactly readable), makes it easy even for beginners to participate in the development of more complex projects.
Conclusion
For these reasons, despite its advantages, the Ruby language has stagnated at a point where its total volume of active developers does not increase as much as it used to. This does not mean that language is dead, or even that it will soon die, just that perhaps the current approach to language development is not ideal. Applications like Redmine, for example, are highly competitive even using Ruby on Rails, which proves that such factors are not and will never be an impediment, but it is important to understand the motivations behind those who do not have a love for the language in order to understand the reasons for stagnation in growth.
Bearing in mind that this was an individual and completely informal survey, and may not reflect the reality in most regions.
So, do you agree? Disagree? Are you also a fan and enthusiast of this beautiful language? Tell me in the comments 😊😄
Versão em português
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 😊😄