23
Bomba: Merb e Rails se fundem!
on December 23, 2008
Vocês devem ter acabado de ver o anúncio: Ruby on Rails e Merb vão se juntar num único projeto. Tanto Matt Aimonetti quanto Yehuda Katz passam a ser parte do Rails Core Team, e a Engine Yard deve colaborar também.
Sinceramente, era algo que eu não esperava tão cedo. Quer dizer, alguma coisa ia acontecer, mas não imaginei que fosse isso e nem que fosse tão cedo.

Quem está acompanhando deve ter visto a animosidade entre o Rails Core e a Engine Yard. Isso vem de longa data, desde quanto o Ezra começou o projeto Merb com o discurso de que “Rails não era bom o suficiente e por isso ele resolveu fazer um framework próprio”. Desde então a Engine Yard cresceu sendo um hosting especializado em Ruby on Rails, ou seja, o negócio lucrativo deles passou a ser Rails mas o discurso com o Merb não mudou.
Recentemente tivemos várias demonstrações hostis com a discussão das linhas de código que moveu Jeremy Kemper (bitsweat), Yehuda Katz e o próprio DHH. No caso foi a discussão sobre se Merb tinha menos linhas de código que o Rails ou não. Depois foi a discussão sobre modularidade, de que Rails era um monolito.
Além disso, no começo do projeto Rubinius, logo quando o Passenger estava sendo anunciado, o Ezra também anunciou o projeto mod_rubinius, que foi oficialmente morto recentemente e retirado do Github. Ambos os projetos não foram para frente. O Phusion Passenger foi lançado e cumpriu a promessa de resolver o problema de deployment do Rails. Mesmo assim o discurso da EY sempre foi que Passenger não era bom para projetos grandes. O próprio Tom Mornini, CEO da EY, retrucou às provocações do Pratik Naik, depois o Ninh Bui da Phusion também respondeu.
Vocês devem ter notado que depois do lançamento do Merb 1.0, o DHH voltou fortemente à ativa, evangelizando com nunca. Escreveu mais blog posts recentemente do que o ano passado inteiro, atualizou o site oficial do RubyOnRails.org, passou a apoiar publicamente o Passenger. Fora isso, o Rails 2.2 mal saiu e o Rails Core investiu mais tempo na integração com Rack e o Josh Peek lançou o Rails Metal como uma maneira de combater o Merb Bare. Fora alguns patches recentes para tentar melhorar o suporte a Rails Engines, também como forma de combater o Merb Slices.
Frente a tudo isso, conversei com o Matt e em seguida ele escreveu o Merb ♡ Rails numa tentativa de quebrar o gelo. Mas neste ponto as cartas já estavam na mesa. De lá para cá muita coisa aconteceu por baixo dos panos. Resumindo, ontem decidiram que a solução seria juntar os dois projetos. O Merb deve entrar em modo de manutenção e provavelmente a melhores features devem ser mescladas no código-fonte do Rails. Eu especularia que DataMapper poderia passar a ser uma alternativa ao ActiveRecord, o suporte a dependências poderia ser melhorado e o recurso de Slices poderia substituir o antigo Rails Engines.
Tecnicamente isso é uma boa notícia. As vantagens é que os melhores recursos do Merb estarão disponíveis no Rails 3.0 e ainda evitamos uma cisão de comunidades além de fecha a Guerra Fria e entrar num período de trégua. Por outro lado, sabendo um pouco mais do que andou acontecendo, vou segurar minhas fichas até ver como as equipes do Rails Core, do Merb Core e da Engine Yard vão se comportar de agora em diante.
Update:
- Anúncio no blog oficial do Rails
- Anúncio no site oficial do Rails
- Anúncio no blog do Yehuda
- Anúncio no Merbist.com
- Anúncio no blog do Ezra
- Anúncio no blog da Engine Yard
- Anúncio no blog do Carl Lerche
- FAQ no Merbist.com
*Primeiros Desenvolvimentos"





Não gostei.
Achei legal por que mostrou quea EY fez um excelente trabalho com o Merb.
Espero que continuem o trabalho sem se preocupar em precisar discurtir certos commits.
It’s realy great!
Excelente notícia – Se os princípios e objetivos agora são os mesmos, não havia mesmo motivo para não trabalharem todos juntos. 2008 foi um ano excelente para a comunidade Ruby, e 2009 promete!
Foi a típica manobra de “já que não pode com eles, junte-se a eles…”.
O pessoal do Merb é “punk”. E o Yehuda Katz é um ninja. Posso dizer porque os conheço pessoalmente. E como o DHH é um cara que entende bem de negócio e apesar de “pop” tem uma visão extremamente aguçada, percebeu que ali seria uma luta difícil, e resolveu colocar o que há de melhor no Rails. No final, ficará o nome Rails (que é propriedade do DHH) e o Merb será esquecido. Não é o Rails 3 que será lançado? Por que não o Merb 2? Como diria o Avi Bryant: “Eu vim do futuro e sei como tudo isso termina…”. Isso é o que eu acho, do negócio em si.
Tem muito mais coisa envolvida que acredito irá causar algum descontentamento na comunidade. Por exemplo, o Foy Savas tem um contrato para escrever o livro “The Merb Way”. E agora? Tem que finalizar porque já deve ter sido vendido, apesar de ainda não ter sido lançado. E o “Merb in Action”, do próprio Yehuda? E as startups que apostaram no Merb? E os projetos quase-finalizados em Merb? Do lado do Rails, será que o trabalho do Josh Peek, com thread safetys, será descartado?
Acho que a comunidade Rails vai entrar num estado de latência, hibernação, esperando pelas novidadaes no Rails 3. E o Rails 2.3 será somente pro-forma.
Agora, tecnicamente, é indiscutível que não poderia acontecer algo de melhor ao Rails.
Rails is dead. Long life to Rails.
Abs. Christian.
Não posso dizer que “EU JÁ SABIA !”, mas logo cedo, quando conheci o Merb mais um pouco, estava com este pressentimento…
Espero realmente que o projeto conjunto aproveite o melhor de ambos, sem que haja uma perda total de identidade, pois se o Rails é “opiniated”, o Merb permite mais escolhas ao desenvolvedor.
Agora é esperar pra ver.
Bom, Ramaze e Sinatra ainda vão estar por aí (espero).
Grande abraço e FELIZ NATAL a TODOS.
Como aprendiz iniciante em ruby/rails/merb essa fusão faz todo o sentido. Parece-me tolice que dois frameworks com tanto em comum dividam a comunidade desta forma e que, com isso, desenvolvedores tenham que aprender particularidades de sintaxe e codificação em dois frameworks “primos” para poder executar uma mesma tarefa. Não é só gasto de energia dos dois Core Teams, é também gasto de energia para desenvolvedores que se utilizam dos mesmos.
Esse tipo de notícia é só um choque no início, depois passa. Sabe porque?
1) Brigas entre frameworks são percebidas como algo mais grave pra quem tá de fora da situação do que quem é do “core team”. Sempre foi assim e sempre será.
2) Todos os frameworks web são parecidos, todos seguem o MVC e estão sempre sob as mesmas limitações e oportunidades da linguagem. O que difere um do outro é uma coisinha ou outra, mas a essência é a mesma.
3) O que faz muita gente criar um novo framework é que o framework “dominante” não é extensível a ponto de alguns simplesmente poderem modificá-lo. Era assim com Struts, era assim com Rails.
Além disso, quem conhece Java (como eu) sabe que esse tipo de coisa sempre acontece por lá. Já houve união de Struts com Webwork, já houve união dos mecanismos de persistência “padronizadas” do Java com Hibernate, e haverá união de EJB com Spring.
E em todas elas, ficou o nome de um framework com a alma do outro. Minha opinião, se eu fosse apostar, acredito que só vai ficar Rails no nome, pois a essência será o Merb.
Putz!
Bom, as considerações “filosóficas” já foram muito bem colocadas nos comentários acima.
Então, permita-me expressar minha preocupação mundana (rs) : o projeto de tradução do Merb book acabou, né? Hoje mesmo tinha traduzido um monte de coisa… rs
Abraços!
Putz grila… Será que o Rails vai mudar muito a ponto de termos que reaprender boa parte?
Fico feliz com a fusão, acho que a comunidade só tem a ganhar. Mas a escolha do nome – Rails 3 – ainda vai dar muito o que falar…
http://ismerbrails.com/
Enquanto isso com todas as críticas as outras soluções navegam…sem grandes alterações, pegando um bucado aqui e ali, largando alguns que queren testar outras imbarcações acolá…sempre em frente…
Eu não programo em Ruby mas já mexi um pouco com Rails e Merb, só pra conhecer. Acho que é mais interessante pra comunidade dois projetos bons com caracteristicas distintas. O que aconteceu foi talvez o melhor código do Merb sendo engolido pelo marketing do Rails. O DHH é homem de negócios e esta fazendo a parte dele.
Acredito que tudo isso que foi dito será o contrário…
Claro, foi escolhido o nome Rails pois ele é extremamente popular e atualmente qualquer desenvolvedor do mundo ao menos já ouviu falar… não justifica matar essa popularidade.
Segundo o DHH no post no blog do Rails, o Rail continuará opnitated pois por padrão será tudo igual quanto as escolhas atuais ( AR, Prototype, ERB e etc) mas você poderá gerar seu aplicativo também fazendo outras escolhas se quiser:
Algo tipo:
rails myapp—core
rails myapp—flat
Eu pessoalmente, odeio a perda de tempo com opções… prefiro que o framework decida as bases por mim, por isso gosto do Rails atualmente.
Ao contrário do que o pessoal anda achando, segundo o DHH o Rails 2.3 vai ser lançado agora pq tem algumas correções e melhorias que precisam ser lançadas e também para permitir que todo mundo possa trabalhar no Rails 3.
Ainda segundo o DHH, o Rails 3 não será totalmente diferente como tem gente achando, e os esforços máximos serão para manter a compatibilidade 2.3 para 3.0 e que seja fácil portar uma aplicação para a versão mais nova.
Outra coisa que o DHH comentou foi que o Merb continuará passando por manutenção, bug fixes e etc… só não será mais atualizado como uma nova versão com novos features.
Eu pessoalmente acredito que se o Merb evoluisse mais seria péssimo para novas pessoas entrarem na comunidade Ruby. Vai demorar muito para outro framework ter a visibilidade que o Rails teve (ou talvez nunca exista outro) no mundo não Ruby… querendo ou não a maioria aqui nunca deve ter escrito uma linha de ruby antes do Rails. Então Rails é a porta de entrada da maioria das pessoas ( não adianta dizer o contrário). Em outras linguagens dizemos PHP e as pessoas não lembram de um framework, em ruby você ainda diz só ruby as pessoas de fora lembram de Rails. E se o Rails some diante a um outro framework que não teve o boom do Rails então ficaremos fechados em uma comunidade de nicho mas com uma excelente ferramenta ( quem aqui já escreveu alguma aplicação no excelente Seaside do Smalltalk ? ).
Por isso acredito que a melhor coisa foi juntar o dois, mas não compartilho com o pessamento de se não pode com eles junte-se a eles. Estava óbvio que Rails podia com o Merb tanto que ambos os core teams começaram a escrever funcionalidades iguais um para o outro e isso nunca levaria a lugar algum.
Também estou ancioso para ver como todos vão ser comporta.
O merge sera muito bom … pro rails … infelizmente muita gente nem conhece nem conhecera o q eh merb.