A maioria das linguagens de programação possui algumas decisões de design que influenciam seu uso e aplicabilidade.
Por exemplo:
- O Python focou na manutenção / legibilidade do código e teve o recuo como parte da própria linguagem.
- A intenção de Java era ser OOP multiplataforma 'mais fácil' e 'mais amigável' que o C ++
- O Objective-C foi criado como um wrapper OO em torno de C sem conhecer o futuro do C ++ na época
- Erlang foi projetado para sistemas concorrentes e altamente tolerantes a falhas
- PHP projetado para lidar com a criação dinâmica de páginas da web
- O CoffeeScript foi projetado para expor as partes boas do Javascript e adicionar açúcar sintático OOP e ocultar as nuances (globais etc.) de JS 'nos bastidores' etc.
Cada linguagem de programação tentou explorar e capitalizar um nicho específico do IMHO. A seguir, minhas perspectivas sobre quais foram os princípios fundamentais das linguagens de programação e que governaram sua evolução e ampla adoção. Claro, existem muitos mais, mas a lista é apenas um exemplo
No entanto, tenho me esforçado para entender os princípios básicos nos quais o Ruby se baseia e sua crescente popularidade. Quais foram os princípios fundadores do Ruby que o tornam popular hoje? Ou é o gênio de um homem que projetou o framework Rails? Se foi o último que Ruby tornou o design do Rails melhor / mais fácil / mais rápido? Em que sentido?
A razão mais comumente citada pelo criador é '... queria uma linguagem de programação divertida e de tipo fraco' - não vejo isso como uma razão para criar uma nova linguagem de programação completamente! Programar é muito divertido IMHO, independentemente do idioma (cada idioma tem algumas partes ruins, mas é possível contorná-lo ou viver com ele).
Então, qual nicho (ou o que) o Ruby explorou que não é explorado pelos idiomas atuais? Qual é o 'ponto forte' (USP) do Ruby que levou à sua ampla adoção? O que Ruby fez que não foi feito antes (ou foi extremamente difícil)?
Eu não sou um programador de Ruby, mas apenas um Ruby noob e, portanto, a confusão.
Isenção de responsabilidade : NÃO é uma guerra de chamas e não estou procurando respostas para o tipo de linguagem Ruby vs Programming. Estou procurando as decisões de design nas quais o Ruby se baseia, que levou à adoção generalizada. Qual o nicho que Ruby satisfaz para se tornar popular ou que é puramente atribuído ao Rails?
Isso não responde diretamente à pergunta do título, mas aborda alguns pontos levantados (por exemplo, por que o Ruby foi criado)
Citações de Yukihiro 'Matz' Matsumoto, criador de Ruby, que podem ajudar a explicar o que inspirou sua criação:
Então, basicamente, Matz queria uma linguagem extremamente orientada a objetos, projetada para a felicidade dos programadores.
fonte
+
in1+1
é um método.Ruby (junto com trilhos) tornou popular a convenção sobre configuração .
O caminho antigo (sem rubi nos trilhos) era
Com a convenção sobre configuração, o trabalho base para isso é feito automaticamente:
contras: você precisa aprender todas as convenções para aprender rubi sobre trilhos na primeira corrida é mais difícil.
prós: depois de conhecer as convenções, é muito fácil entender o código de outros desenvolvedores de ruby on rails, porque todos são forçados a seguir as mesmas convenções.
Enquanto isso, a convenção sobre configuração entrou em muitos ecossistemas de codificação
fonte
Primeiro, Ruby é um "idioma atual". Talvez você queira dizer "Idiomas populares quando o Ruby foi criado em 1995".
Gosto de Ruby pelas mesmas razões que gostei de Perl:
É poderoso e expressivo. Eu posso escrever sobre uma linha de código Ruby em vez de cinco linhas de Java ou C ++. Não há repetição que não possa ser fatorada com o mínimo de barulho.
É dinâmico. Métodos e propriedades podem ser criados em tempo de execução, para que eu possa agrupar objetos em torno de coisas definidas externamente, como tabelas de banco de dados, sem duplicar a definição dessas coisas e sem reconstruir o aplicativo.
Existe um excelente livro sobre a linguagem ( Programming Ruby ) que é legível e abrangente.
Existe um repositório único para pacotes de domínio público e uma interface de linha de comando conveniente para o repositório.
Mas eu gosto mais de Ruby que de Perl, porque é mais legível.
Existem inúmeras páginas comparando Ruby com Python. Eu gosto dos dois. Eu prefiro Ruby, mas tenho experiência limitada com Python.
fonte