Marcus Ahnve posted about Merb, and how it is “leaner and meaner than Rails”.
His core point:
I have used Rails on a daily basis for almost a year now, and before that I was a night time hangaround. While I am definitely a happier programmer using Rails than anything built on Java, I still feel that it can get better.
First of all I want more things to be plugins. And really, they should not be plugins at all but gems instead.
Why plugins? We use RSpec instead of Test/Unit, HAML instead of erb and are seriously looking into JQuery instead of Prototype. And of course, we are using Mercurial instead of Subversion. All of this is of course possible to use in Rails, but a lot of things are sort of made for the default choice, such as generators generating tests, and plugins having the -x switch for Subversion. And I am pretty sure that this is the way DHH wants it.
The part that interests me is “we use X instead of Y”. I get it. People have been doing Rails for quite awhile now, and as with everything, they see things they would like to do different. That PHP/ASP/JSP-like, ugly <% %> syntax is a drag. It makes me think that I will be putting code throughout the view god damn it! So, I will give HAML a try, or some other builder-based system, or write my own. Why not? With Ruby, surely I can put together a great templating system in about 10 lines of code.
The problem of course is one of the reasons that you probably jumped to Rails in the first place was due to the paradox of choice that you had in Java land. You sat down with Rails for the first time and had a sign of relief as you ran % rails mynewproject. Just like that, you had bypassed the weeks of work evaluating which combination of Java frameworks and tools that should be used on this project. You didn’t have to argue with The Architect about the merits of abstracting logging to a bizarre degree with commons-logging.
When you talk to Railsy folk you will already hear about various plugins that you should be using. If you aren’t careful, you will be in the same path as before, until you move on to Django, …