May 21st, 2008 tkadom
"you don’t have a scaling problem, until you have a scaling problem". When I first read those words they rattled around in my head for a while trying to fit into my framework of reality. Sure, most people will never have a scaling problem, so for the majority of people who are concerned about scalability of their application it is sage advice. Facing reality, your odds of being the next facebook are slim, so why worry about scaling? Its a comfy thought that lets you feel like all is well with the world in rails - as long as your wearing those rose colored glasses. I you take them off, all DHH has said is that your too small to have a scaling problem. If your big enough to worry about it, then move along or come up with your own solution.
I guess thats why merb and numerous other ruby frameworks have entered into the picture. From hearing Ezra speak about his motivation for merb, it seems that he started with wanting to fix rails, got deep enough into the core code and realized that his changes would be so massive and invasive that rewriting from scratch was a better option. Now here we are, a few days away from merb 1.0, and probably another 6-12 months away from merb-more being at a point where the rest of the ruby community will find merb useful enough to consider as an alternative to rails.
will rails stand still while all this is going on? will there be a last ditch, "oh yeah, we rewrote all that crap and it smokes now, so why leave" effort? Two months ago we had planned a data mapper presentation for the Atlanta ruby User group, but at the last minute the presenter pulled a 180 and decided to talk about all the nifty new features being added to ActiveRecord. His motivation for datamapper diminished since most of his reasons for using it were being alleviated by the pending features for activerecord. He is most likely not alone.
As i was reading about how datamapper will be splitting to dm-core and dm-more in this blog I started wondering if the split was really because dm-core and dm-more was a more elegant architectural approach, or if the community was just buying time like merb did with merb-more. It seems to me that by lumping all the useful stuff into a red-headed stepchild library, the community is sticking its head in the sand. merb-more and dm-more are the portions of the framework that would drive new users to the platform. while I understand the motivation to work on the cool stuff down close to the iron in the framework, merb wont be successful until merb-more is at a point where it approximates the agile nature of rails. Datamapper will presumably fall into a similar comparison with activerecord. I can see merb development being more appealing to the enterprise, but with merb-more and dm-more lagging so far behind their respective framework counterparts in rails, will merb have a substantial advantage over django, or code igniter?
People who are concerned about scalability are not just solo entrepreneurs who have delusions of grandeur. The reason for asking up front about scalability is because most of us know that once you do have a scalability problem, the fix is not easy, and is compounded in difficulty if you chose a bad platform to build on. I am drawn to merb because it is elegant. I am drawn to rails because it is simple and incredibly agile. merb-more and dm-more are more baby than bathwater. why does it seem that the community is relegating those libraries to some lower tier of importance?
Posted in Random | 4 Comments »