I don't want to title this post, "How I learned to stop worrying and love the rails" but it is a fairly good fit.
I have been really enjoying Ruby on Rails. At the same time, it has been pissing me off as much as I have been enjoying it. See my post on error handling in the view. Note to self: post my "solution" to that particular problem.
After spending a couple days with it, i actually did set something up that was nicer than what i had started with. I reduced an application's main form down to 10 lines of helper method calls and implemented the error handling in exactly the way i wanted. I still ended up learning a bit more than i wanted to about the rails internals, but in the end, i kind of think i don't care. If i don't like the included HTML generating methods, i can always write my own.
This realization was underscored after the recent Chicago Ruby User
Group meeting. I had the pleasure of chatting with marcel and sam from the
rails core team. They had the distinct displeasure of listening to me
piss and moan. Rather than calling me a troll they were super polite.
After a while they basically made me realize that what i was complaining about was that rails was not 100% molded to my brain's way of determining the right way to solve problem X. The fact that i was able to use the plugin system to override the internals was not terribly elegant, but was functional. The real solution to that is to make my own helper methods that implement the widgets in the way that i want to. And ultimately, I think that is OK. I still think the strength of rails is in the adherence to MVC separation and its two killer components, ActiveRecord and ActionController.
All in all, Rails is making me think about my web development in a smarter way and making me much less tolerant of wasteful repetition. My first couple of rails projects are coming along nicely and I am happy. what could be better?
Anyway, i thought that my decision to stop bitching about something was post-worthy.