If you are a programmer, you\'ve no doubt heard about RoR (or Ruby on Rails) by now. There\'s been plenty of buzz about it. Just hop on over to Digg.com and search for Rails. You\'ll find plenty to get you started. Might I even recommend this feature to start.
The enthusiasts rave about it as if it is the end all be all web programming killer framework to end all frameworks. Personally, I think that\'s bunk. While I find RoR pretty cool, and exciting (I have no life), I hardly think that its a Java/.Net/PHP/any other language \"killer\" that many would you have you think. But before I go off on anything, let me tell what it buys you...at least from my standpoint.
Claim: Increase productivity by X times: Ummmm, maybe at first. What it allows you to do is basically hit the ground running. You can literally have an application, (albeit a very simple one) up and running in 5 minutes. Including CRUD operations. (For the uninitiated that did not heed the warning at the top of this entry, CRUD = create, read, update, delete). Writing CRUD is where alot of developers spend alot of time. By taking care of all of that \"CRUD\" behind the scenes, the developer is cleared to start coding the guts of the application.
In reality, who ever needs just the basic default CRUD operations in their application? Normally there are a ton of things you are going to want to do with that data, to that data, etc. So you may be off the ground faster, but when you need to interact with that CRUD at all, its time to generate the actual code that RoR handles behind the scenes, and get your hands dirty. Looks like we\'re right back where we started...and as you read in my next point...we didn't move all that fast.
Claim: Makes Unit Testing a breeze: I\'ll buy that...it creates a base unit testing framework for you, and while I am not known for getting a stiffy when one talks about unit testing, anything that makes it easier is a good thing in my mind.
I am taking major issue with this at the moment seeing as how some of our RoR adopters at our company held a training class today. The class started at 9:30 and by 10:45, we had not yet completed our unit test. As it turns out, our guys are trying to \"work-around\" a Rails issue wherein Rails expects all of your fixtures to be in one giant fixture file, which generally isn\'t what you want to do with your unit test fixtures...(so I am told, again...I\'m not exactly a big unit-tester at the moment, I know I should be...but I\'m not). Anyway, in trying to work around this issue, things have gotten royally S K R O O D up. Basically nearly 90 minutes of my life ticked by and came out the other side no better than I had gone in. Some improvement...
Claim: Its just as fast as PHP, Java, or anything else out there. So far, this remains to be seen. Using lighttpd and fastcgi is an option and works well, but I haven\'t seen any improvement over PHP\'s performance. Then try running it under Apache...in my experience, its slower. And before you start ripping on me for not having benchmarks, I just haven\'t had the time to mess with it...(apparently too busy writing unit tests???). I know how it feels, and it feels slower.
Claim: It makes writing AJAX enable applications really easy. In all honesty, it probably is a bit simpler than busting out your AJAX skills on your own. I\'ve seen it and yes, I believe for the most part, RoR holds up its end of the bargain on this. HOWEVER, I\'ve done the identical things in PHP with minimal futzing. And if you want to talk about a framework for PHP, then CakePHP does the exact same thing. Matter of fact, CakePHP buys you pretty much anything that Rails buys you. So this is a non-issue in my book.
Overall I am quite unimpressed at this point in time. I can totally see RoR fitting in for the small one-off, quick apps that you need to just turn around and get done. When you start getting into situations in which you don\'t have as much control over the environment you are working in, (like DB Schemas), its not as good a fit. You *can* override what fields RoR expects your DB to have, but the minute you start messing with a tool that does one thing really well in order to get it to do other things really well, you\'ve compromised that tool\'s advantage.
Anyway, suffice it to say, I\'m a bit bitter after losing 90 minutes of a productive work day to listening to a couple of fanboys talk about the latest buzz word. I may be bitter, but yes, I still like RoR and am still learning it...my opinion may change someday. Then again, for right now, I\'m treating as just another tool in my belt. When the right situation arises, I\'ll bust it out...until then, its still buzz to me.
Perhaps I don\'t have my finger on the pulse of the programming world, but everyone is claiming that RoR is taking off and is really really popular, yet the only places I\'ve heard anyone referring to it are in this office, and at a couple of conferences that I\'ve been to. RoR has its place, though I think its still looking for it.
