Hoje em dia expressividade de código é uma das coisas mais importantes quando vamos desenvolver sofware. Papéis e documentação muitas vezes só atrapalham a busca por algo que se auto explica. A maioria dos desenvolvedores buscam esta tal expressividade que pode ser entendida como fácil manutenabilidade, com linguagens que podem tornar o código mais fácil de ler e manter.
Hoje as linguagens que mais atingem esse objetivo são sem dúvida: Python e Ruby. Porém o critério de simplicidade e legibilidade são um pouco diferentes entre elas. Python, por exemplo, diz em sua documentação que:
Casos especiais não são tão especiais para quebrarmos as regras.
Quando se deparar com uma ambiguidade, não ceda à tentação de tentar adivinhar.
Deveria haver uma, e preferencialmente só uma, maneira óbvia de fazer algo.Se a implementação é difícil de explicar, não é uma boa ideia.
No caso do Ruby, seu criador diz:
é simples na aparência, mas muito complexo no interior, tal como o corpo humano.
Mas qual linguagem é mais expressiva? Ou mais fácil de ser utilizada?
O Luiz do VidaGeek aponta algumas vantagens e desvantagens do Ruby, assim como do Python:
Acho que é bom ter mais de um jeito de fazer a mesma coisa, como o Ruby possibilita. Um jeito só de fazer a mesma coisa, a meu ver, tem a vantagem de facilitar um pouco a leitura do código, graças à uniformidade.
Por outro lado, as peculiaridades da sintaxe de Ruby não me agradam; acho que tornam a linguagem mais difícil de compreender. Os casos especiais são muitos e, às vezes, deixam o programador confuso quanto à necessidade de chaves, por exemplo.
Uma característica muito importante que a linguagem Ruby deveria ter, mas só Python tem, são argumentos rotulados. Em Ruby, costuma-se utilizar um hash para suprir essa necessidade, o que, convenhamos, não é muito elegante.
No C2.com tem uma matéria que compara vários aspectos das linguagens. Dentre eles, é citado um aspecto imporante que é a questão da comunidade. Sem dúvida no Brasil a comunidade Ruby é maior e a quantidade de bibliotecas e ferramentas, apesar da comunidade Python também ser grande, ainda não se compara a comunidade Python.
Outra questão discutidade é a facilidade de aprendizado. Muitos defendem que a maioria dos iniciantes em programação podem aprender com mais facilidade a linguagem Python.
Sim. I gosto mais de Ruby do que de Python, mas muitas vezes iniciantes me perguntaram qual linguagem eu recomendaria como primeira linguagem de programação, e eu sempre digo a eles, "Smalltalk ou Python"-- AdamSpitz
Uma série de comparações são feitas e você pode conferir aqui. Eles abordam até questões sobre performance.
E você leitor? Que aspectos considera relevantes nesta discussão? Dê sua opinião.