Merb é um framework web completo, concorrente do Rails com a vantagem de ser thread-safe (aliás, é incrível como os comentários depreciativos do Rails no GUJ nunca citaram essa grande fraqueza do framework. Será que tem gente que critica sem conhecer?). Ele também traz algumas coisas bacanas como um modelo de plugabilidade melhorado, pelo que consta.
Alguém já começou a fazer coisas legais no framework?
No momento, não vejo o Merb como um concorrente do Rails, e acho que nem o Ezra(criador do framework), já que ele disse no Rails Podcast que gosta bastante do Rails, mas que em certos projetos não precisa de tudo que ele oferece, e por isso criou o Merb.
De qualquer forma, ele não deixa de ser um projeto interessante e bastante promissor, principalmente se considerarmos o progresso dos outros projetos da Engine Yard, no caso o Rubinius e o mod_rubinius.
E sobre o Merb ser thread-safe, confesso que não entendo muito do assunto, mas, no que tange a performance, creio que essa diferença não seje tão gritante, principalmente se o Merb crescer em funcionalidades e ficar perto do tamanho do Rails.
[quote=elomarns]No momento, não vejo o Merb como um concorrente do Rails, e acho que nem o Ezra(criador do framework), já que ele disse no Rails Podcast que gosta bastante do Rails, mas que em certos projetos não precisa de tudo que ele oferece, e por isso criou o Merb.
[/quote]
O merb é um concorrente do Rails já que ambos sãof rameworks web que não trabalham exatamente juntos.
[quote=elomarns]
E sobre o Merb ser thread-safe, confesso que não entendo muito do assunto, mas, no que tange a performance, creio que essa diferença não seje tão gritante, principalmente se o Merb crescer em funcionalidades e ficar perto do tamanho do Rails.[/quote]
Isso não tem muita relação co uncionalidade e sim com design.
Quanto ao Rails e o Merb serem concorrentes, eu acredito que por enquanto este não seja o caso, já que mesmo os dois sendo frameworks web, ainda estão em estágios de evolução bem distintos. Enfim, talvez eu esteja errado, mas pelo menos por hora, o Merb ainda me parece mais uma alternativa light ao Rails, servindo para projetos onde o Rails fosse um pouco mais do que o necessário. Acredito que essa concorrência só virá a acontecer mesmo com o tempo.
Já em relação a ser thread-safe ou não, como eu disse antes, não sou exatamente um entendido no assunto, mas pelo que eu li(na verdade ouvi), a eventual evolução do Merb o faria ter uma performance mais próxima do Rails.
[quote=elomarns]
Já em relação a ser thread-safe ou não, como eu disse antes, não sou exatamente um entendido no assunto, mas pelo que eu li(na verdade ouvi), a eventual evolução do Merb o faria ter uma performance mais próxima do Rails.[/quote]
É exatamente iso que não faz sentido. O problema do Rails é que ele não trabalha com mais de uma coisa (uma thread) de cada vez, a maioria da mágica que o Rails faz não é thread-safe. Isso significa que cada instância de Rails vai cuidar de uma requisição por vez apenas. O Merb foi criado exatamente para poder fazer varias coisas ao mesmo tempo.
Independente das funcionalidades de cada um, fazer várias coisas ao mesmo tempo ou apenas uma é o que importa.
[quote=pcalcado][quote=elomarns]
Já em relação a ser thread-safe ou não, como eu disse antes, não sou exatamente um entendido no assunto, mas pelo que eu li(na verdade ouvi), a eventual evolução do Merb o faria ter uma performance mais próxima do Rails.[/quote]
É exatamente iso que não faz sentido. O problema do Rails é que ele não trabalha com mais de uma coisa (uma thread) de cada vez, a maioria da mágica que o Rails faz não é thread-safe. Isso significa que cada instância de Rails vai cuidar de uma requisição por vez apenas. O Merb foi criado exatamente para poder fazer varias coisas ao mesmo tempo.
Independente das funcionalidades de cada um, fazer várias coisas ao mesmo tempo ou apenas uma é o que importa.[/quote]
Eu já sabia dessa limitação do Rails e da ausência dela no Merb, mas por não ter muito conhecimento sobre essa parte, acreditei que o volume de funcionalidades do Merb iria causar uma queda na sua perfomance e aproximá-la um pouco do Rails, mas pelo visto parece que fui mal informado.
Ainda sobre esse assunto, o suporte a multi-VM do Rubinius faria o Rails ter uma perfomance melhor que a atual? Digo isso sem comparar com o Merb também sendo executado pelo Rubinius.
O Struts e o framework de serlvets são thread-safe, o que você não pode fazer é deixar seu servlet com estado porque uma mesma instância é utilizada em diversas requisições. isso não é um problema dado que você deveria armazenar estado em outros lugares como escopo de sessão.
O Rails não atende mais de uma requisição por vez, seja compartilhando ou não.
E sobre o data mapper, qual a opnião do pessoal? Vcs estão utilizando?
Eu gosto do AR, apesar dos pesares.
(em tempo: descobri a existência desse canal agora, parabéns GUJ!)
A minha impressão é que o DataMapper ainda está meio cru. A última vez que eu chequei, no começo do ano, havia pelo menos um bug grave nas associações.
Saindo do tópico, a única coisa que eu acho chata no AR (e que infelizmente o Sequel copiou) é o esquema de migrations. Se eu vou definir meu esquema de dados em Ruby, não faria mais sentido defini-lo no próprio modelo?
O Framework leva a assinatura de uma equipe altamente qualificada e pretende estar aderente ao Rubinius. É um framework para a comunidade Ruby sem dúvidas prestar atenção.
Hoje com a diferença de performance que estão publicando, não acho que compense a substituição de Rails por Merb, já que a intenção desse tipo de framework é agilizar a produtividade.
Alguém tem mais um outro ponto à não ser performance ? Vi que possui um menor acomplamento entre os frameworks de JS, ORM, entre outros, permitindo a substituição deles. Também li sobre o render , que me pareceu bastante a forma que o SpringMVC trata a requisição.