O que Ruby fez certo (ou foi Rails)? [fechadas]

13

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?

Doutorado
fonte

Respostas:

11

Eu acho que Ruby decolou por vários motivos:

  • A estrutura do Rails. O Rails reuniu muitos padrões úteis para facilitar o desenvolvimento de aplicativos da Web e aumentar a produtividade do desenvolvedor. Compare isso com o desenvolvimento web detalhado e tedioso de Java e a plataforma .NET "one man show". Criar aplicativos da web para blogs em minutos foi uma loucura.
    Você pode ver os "efeitos Rails" em muitos novos frameworks da JVM, como Grails, Play! e Spring Roo.
  • Histórias de sucesso como o Twitter e o Github. As startups precisam chegar ao mercado o mais rápido possível e com o Rails, isso é possível. Histórias de sucesso eram uma evidência.
  • A linguagem de programação Ruby em si é bonita, poderosa e expressiva. IMHO, Ruby é o molho secreto do sucesso do Rails.
    Veja a beleza de Pepino e Sinatra, a beleza das DSLs feitas corretamente.
  • Comunidade ansiosa e corajosa que não tem medo de experimentar e inovar.
  • (Opinião pessoal e pode não ser uma razão vital) É criado no Japão. Nada supera a imagem de "Made in Japan".
    Para mim, aprender linguagens de programação criadas em diferentes países é o mesmo que conhecer novas pessoas. É divertido e educativo.
    Ruby / Japão, OCaml / França, Lua / Brasil, Lisp / Mars :)
Quíron
fonte
5
Curioso sobre o que você quer dizer com "o único homem que mostra a plataforma .NET", não é uma frase que eu já ouvi antes?
Carson63000
2
+1 para Lisp / Mars. Onde isso coloca Haskell?
Adam
2
Haskell vem de dentro da terra onde um exército de pequeno anão como desenvolvedores criado com a intenção de confundir os programadores OO
Daniel Gratzer
1
@ Adam "A civilização da Atlântida"
Quíron
13

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:

  • "Eu queria uma linguagem de script mais poderosa que Perl e mais orientada a objetos que Python"
  • "Espero que Ruby ajude todos os programadores do mundo a serem produtivos, a gostar de programar e a serem felizes. Esse é o objetivo principal da linguagem Ruby".

Então, basicamente, Matz queria uma linguagem extremamente orientada a objetos, projetada para a felicidade dos programadores.

SuperMaximo93
fonte
1
É extremamente orientado a objetos. Quero dizer, o +in 1+1é um método.
bpromas
5

Ruby (junto com trilhos) tornou popular a convenção sobre configuração .

O caminho antigo (sem rubi nos trilhos) era

  • Defina uma tabela de banco de dados "pessoas" com um campo chamado "aniversário"
  • Defina uma "pessoa" da classe de negócios com uma propriedade "aniversário"
  • escreva uma classe auxiliar para transferir dados entre o banco de dados e a classe empresarial
  • criar um gui que como as pessoas em uma lista
  • crie uma GUI para editar as propriedades de uma pessoa

Com a convenção sobre configuração, o trabalho base para isso é feito automaticamente:

  • você define uma pessoa no código
  • tabela de banco de dados, mapeamento, gui-elements, são criados automaticamente para você por um poderoso interpretador ou codegenerator

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

k3b
fonte
4

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:

  1. É 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.

  2. É 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.

  3. Existe um excelente livro sobre a linguagem ( Programming Ruby ) que é legível e abrangente.

  4. 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.

Kevin Cline
fonte
Lembro-me de ler que se esperava que (o que se tornasse Ruby) se tornasse bom o suficiente para substituir Perl no prefácio de Programming Ruby.
Rig
@ Kevin: Essas são algumas das características da linguagem e eu estou bem ciente delas. No entanto, eu gostaria de saber o 'motivo da criação do Ruby' que não seja "Eu quero uma linguagem divertida / com uma digitação fraca" (ou essa razão é suficientemente grande?)
PhD
1
@ Nupul: Essas coisas não são feitas pelo comitê. Matz pegou uma noção e escreveu Ruby. Ele mostrou a algumas outras pessoas depois de um tempo, e algumas delas gostaram. Foi assim que LISP, Smalltalk, C, C ++, Pascal, Perl, Ruby e Python foram criados. Eu acho que é o mesmo para a maioria das linguagens de programação. Apenas alguns foram criados por comitê ou iniciativa corporativa.
kevin Cline