Rails 3 and Merb
So⦠Rails and Merb are going to be merged into Rails 3. (link)
Has hell frozen over?

[(it has in Portland the last week)]{.small}
Iām curious about how the revised core team will incorporate the library-agnostic view points into Rails without increasing the complexity for configuration. For example, being able to use a different ORM is great, but at the same time, one of the things that I have really liked about Ruby on Rails was that it did make decisions ahead of time for you. Conventions over Configuration and all that jazz. While they intend to keep these defaults, I really wonder how much more configuration will be involved. Be that as it may, Rails and Merb are run by some of the best developers Iāve ever known⦠so I am sure these decisions will not be made without some deep consideration.
Rails application donāt all look and smell the same, but itās nice to know that there is consistency across all of our client applications. What Iām concerned about (from an efficiency standpoint) is that this could lead to project-diversity at the cost of experimenting. Pre-Rails, the development teams that I was a part of was constantly trying out new libraries from client project to project, but this came at a huge cost. We werenāt able to leverage our experience with previous projects like our team does with Ruby on Rails currently. (hell, I even helped write two different ORMs in the two years before Rails for PHP⦠and still wasnāt satisfied)
But, this isnāt so much a technical problem as much as a people problem. The thing is⦠is that Rails helped solve a people problem with a technical answer. Having testing, consistency, and other best practices built-in did the world a huge favor. ā¦and all it took was someone like DHH to throw his opinion out there and stick to it. It took me nearly a full year to really embrace a lot of these conventions, but in the end.. it paid off.
While I do feel that itās in developers best interests to try out new approaches, I just donāt think it should be on your clients dime. This was part of the reason why I quit my last job to start Planet Argon full-time. I really wanted to get away from that cycle.
Since we (Planet Argon) adopted Ruby on Rails four years ago, weāve been able to build off of every project we had worked on before. We since adopted things like RSpec and JQuery, but our team decided on these changes after someone took the initiative to experiment with these on internal and personal projects. Having this foundation has freed up a lot of our time to focus on other issues as a team, like Interaction Design, Usability, and client collaboration.
As far as Merb itself, I honestly havenāt tried to do anything with it since about 0.2/0.3. I gave up quickly though because the documentation didnāt help me get anywhere and my time is valuable. Iāve since seen that documentation has improved drastically, but I havenāt been able to prioritize the time needed to really play with it. With Merb being merged into Rails 3, it means that I really should spend more time exploring it as we might be able to leverage some of itās benefits without as much of an investment.
Much of the lack of great interest in Merb was because I felt Rails had consistently provided our team with a solid foundation for a majority of our internal and client applications. The old saying, āif it aināt broke, donāt fix it.ā Not to say that others havenāt expressed a lot of excitement about Merb and itās benefits, I just didnāt see there being enough of a productivity gain to warrant the time investment required to really learn and use a new framework⦠and the one thing that I have had trouble with was that it didnāt sound like Merb encouraged a default set of libraries. I could be totally wrong, but thatās been the perception Iāve had based on how it was branded.
But⦠the best part about this for you, me, and the Rails community? Is that I donāt need to register robbyonmerb.com anytime soon. ;-)
I hope that youāre all having a great end to 2008 and am excited to see all the energy in the Ruby/Rails/Merb community. I suspect that between these two (now-merged) teams, weāll have an even better platform to develop web applications on. I believe this is great news and Iām all in favor of seeing the Ruby community conquer these challenges that lay ahead.
Anyhow, Iām just thinking out loud. What are your thoughts?







