A while back, I read a post where someone was listing a few Rails performance tips. Come to find out, half of them were things like “bypass ActiveRecord” and “beware of finders” and “use HTML instead of view helpers” and so on. That’s actually a lot of why I choose to use Rails in the first place; the last thing I want to do is rid myself of convenient ways to avoid tedious programming. If you want to write explicit SQL statements or standard HTML, maybe Rails isn’t the right framework. I’m pretty sure any of the Microsoft options don’t have a problem with explicit SQL, but beware, .NET does like to make up it’s own HTML at times.
I don’t have much experience with other web frameworks (except .NET… blah). I was just about to try out Cake for PHP when I was introduced to Rails. Having said that, Rails is what I know best. I think Rails sometimes catches some flack for things because it does so much already, it’s expected to do more—somewhat similar to Tiger Woods.
Let me explain. Tiger Woods is legitimately said to be the world’s greatest golfer. He has set a number of records, and truly is amazing to watch. But what happens when the world’s greatest golfer gets a bogey? Or heaven forbid, a double bogey?
Extreme shock, disappointment, and disgust. That’s hardly a fair attitude considering all that he has accomplished. Since he’s currently the best, the expectations of him have far surpassed those of any other golfer—it’s almost surreal.
Rails’ expectations are as high as they are because of how astonished people were in the beginning. It was so easy to work with, but at the same time, everything is relative. It was so easy relative to writing an extra 20 lines of tedious, unnecessary code. Convention over configuration allowed stuff to just “happen.” Now, it’s like Rails gets compared to itself, and it’s supposed to go above and beyond that, which is an endless cycle. I guess it goes back to the old proverb, “the more you get, the more you want.” But don’t forget how painful things used to be, and appreciate how things are, today. After all, it can only get better.
I personally blame Rails to be the culprit for my web programming passion (and yes, it’s Ruby’s fault, too). I don’t know if I would love this stuff near as much if I were stuck in a static environment where my own customizations and ideas couldn’t be put to work. While I rarely do this, I love having the option to dive right into the framework itself and change/add things specific to my needs. Not to mention the sheer beauty of its organization, configuration, and presentation. And being built on top of Ruby makes it that much better. Clean code gives any mindful programmer motivation; and with (Ruby on) Rails, I’ve written some of the cleanest code of my life. Rails is much more than I could ever expect from a framework.
If you’re upset with Tiger Woods not shooting 20 under, or having a “par” day, simply don’t watch him. But I bet you won’t get near the excitement watching someone else.