Eu sei PHP e Ruby.
Usando um clone do PHP Rails (não fora de opção), chamado Symfony, (que aparentemente é o melhor framework PHP), percebo que é um clone do Rails. Eu acho que o Symfony é estúpido e isso (SensioLabs é um negócio inteligente) porque o Rails já existe.
Além de os projetos de código aberto ganharem dinheiro, não entendo por que as pessoas estão criando clones do Rails em PHP, quando o Rails já existe. Por que não usar Rails? Certamente o DHH codificou o Rails com Ruby por um motivo.
Usando o Symfony, percebo que algo não parece certo, mas não sei o que é. Eu aprendi o Rails através de um ebook ruim do Sitepoint e o esqueci, então agora estou aprendendo através do ebook PragProg e adoro esse ebook. Não conheço totalmente o Rails, mas entendo como ele funciona (graças ao Symfony). Eu adoraria terminar de ler todo o e-book para poder criar 2 aplicativos Rails. Lembro que o Rails foi mais divertido que o Symfony usando o ebook do Sitepoint que eu não consegui terminar, e isso não tinha nada a ver com a bonita sintaxe de Ruby.
- Por que o Rails é codificado em Ruby?
- O que há nos clones do PHP Rails, que não parecem adequados?
- O que o Rails está fazendo, que os clones do Rails não estão fazendo?
fonte
Ruby on Rails
sendo implementado em PHP.Respostas:
O Rails foi originalmente extraído do trabalho do DHH no Basecamp, que foi escrito em Ruby. Com o tempo, os principais desenvolvedores do Rails continuaram a extrair e desenvolver mais recursos no Rails e, eventualmente, se tornaram uma estrutura completa.
Como o Ruby cresceu em força e expressividade ao longo dos anos, ele continuou sendo um bom ajuste para a estrutura, também continuando sendo a linguagem na qual está escrita. (Além disso, "C # on Rails" ou "Java on Rails" não tem essa aliteração legal.)
Isso realmente não pode ser respondido objetivamente, mas provavelmente é por causa do nº 1. O comportamento e as características internas do Rails aproveitam muitos recursos existentes no Ruby e seriam difíceis de replicar precisamente em outros lugares. Por exemplo, o PHP não possui metaclasses, das quais o Rails depende bastante.
Porque nem todo mundo tem tempo, orçamento ou disposição para aprender um novo idioma, apenas para que eles possam aprender uma nova estrutura.
Por analogia, se o Brainfuck tivesse uma estrutura da web muito popular, isso significa que você deveria abandonar seus clientes que não escreveram seus aplicativos no Brainfuck? Isso não é maneira de administrar um negócio.
Declarações como "Eu sei PHP e Ruby" sugerem que você ainda não pode apreciar completamente a profundidade, a riqueza e as idiossincrasias de qualquer uma delas.
fonte
Houve uma vez a decisão de programá-lo em rubi. Essa decisão de design dura até hoje.
É um sentimento que você tem, difícil de dizer sobre uma mordida como essa. Você pode perguntar a uma pessoa que é mais íntima e sabe mais sobre seus sentimentos ou até mesmo os compartilha.
Um clone exato do Rails faz por definição tudo o que o Rails faz. Portanto, isso provavelmente dependerá de como exatamente um clone foi feito. As diferentes partes resultarão em comportamentos diferentes. Por exemplo, para uma tradução para outro idioma, o outro idioma pode não ter recursos de idioma que o Rails on Ruby esteja usando, o que provavelmente resultará em diferenças no design e no comportamento.
fonte
O Ruby permite muita metaprogramação, e sua sintaxe permissiva permite criar APIs agradáveis que nem parecem chamadas de método.
Por exemplo, o ActiveRecord, o Mapeador Relacional de Objetos do Rail, executa bem essas duas coisas. Primeiro, ele usa a capacidade de metaprogramação do Ruby para criar métodos dinâmicos correspondentes aos nomes dos campos no banco de dados.
Em segundo lugar, o ActiveRecord permite declarar associações a objetos: um
Person
poderhas_many :books
. Esse has_many parece uma declaração, mas na verdade é uma chamada de método. (Ruby lê isso comohas_many(:books)
.Ruby também tem como objetivo facilitar a vida de programadores experientes.
Ruby facilita essas coisas, então as pessoas fazem. Outras línguas tornam isso mais difícil, ou coisas mágicas como essa explicitamente não fazem parte da cultura. O Django, o mega-framework do Python, tem muito menos meta-mágica, porque não é tão fácil no Python, e o Python como uma linguagem se inclina para "explícito é melhor do que implícito". (Eu não sei muito sobre a cultura PHP ou as estruturas da Web nesse lado.)
Eu acho que essas são algumas das razões pelas quais DHH se apaixonou por Ruby, e ele usa esses recursos de linguagem com força no Rails.
fonte
Por que não usar trilhos?
Vou oferecer uma perspectiva como usuário de ambos. Programador de hobby em Ruby / Rails e uso PHP exclusivamente no trabalho. (Nota: Eu não descarto o Ruby / Rails como um ambiente amador, é assim que escolho usá-lo.)
Muitas pessoas tratam o Ruby / Rails como o santo graal do desenvolvimento de sites por causa da popularidade e por ser "diferente". De muitas maneiras, certamente não é suficiente descartar o PHP como algo antigo.
O Symfony não se parece com o Rails porque o PHP carece de parte do açúcar sintático que o Rails fornece. O PHP está melhorando nesse aspecto e a adição de fechamentos do 5.3 fez a diferença em quantos de nós escrevemos código.
Não me interpretem mal, eu amo Ruby e Rails. Mas quando você não deseja lidar com hospedagem de sites complexos ou caros, ou se preocupar com desempenho ou ser "inovador", o PHP ainda é extremamente relevante hoje e suas estruturas também são muito boas.
Sua insinuação de que os clones do PHP Rails não 'parecem certos' é equivocada, eu acho, porque eles não são clones e não serão os mesmos do Rails. Aprenda a aproveitar a simplicidade e a familiaridade de uma solução PHP.
fonte