rails 2 or ralis 3, which is better for a new project in real life?


Our team decided to use rails to develop our new web application project. Some of our team members think we should ues rails 3 for our new application, beacuse they have many great new features. But the others doesn’t agree with that, they said: “There has been many applications based on rails2. Rails 3 are too new to use for a real project. It may have unknown bugs, and we can not get support as easy/quickly as rails 2”.

All of us agree that we should be based on ruby 1.9, because it is much better than the old versions.

Please help up make a desition, rails 2 or ralis 3, which is better for a new project in real life?

It all depends on what the app is going to do/use..

You are definitely right thinking you will have faster more stable
success using rails2. That is not a rails thing but anyone in technology
long enough knows this tradeoff no matter the platform. (java, .net,
python, drupal, etc..)

The bigger slow downs/bugs/time lags tend to be around the plugins/gems.
It takes time to get those all working properly.

Everyone wants to be on the newest version but think about servers also.
If you keep upgrading your servers a lot of software will break. You
can't go install redhat 6 as soon as it is released and think your not
going to run into issues. Also think about how many bug fixes and
service packs come out after new things arrive. You need to be careful
in your decision.

What I have learned in all my experience is don't be bleeding edge
unless you got it like that and/or want it like that. It seldom is the
'logically smarter' choice for the majority of scenarios.


One thing that might change this thinking (for me anyway) is the launch date for the project. If it's in a month or two, I'd stick with 2.x because I don't have the time to deal with plugin/gem issues. If it's 6 months or a year from now, I'd be much more likely to deal with those issues because come launch time 3.x will have had all those things worked out.

A timeline of that duration would also give me the time (or let me plan for it) to *help* fix those plugin/gem issues and contribute back.


I'm going to tell you to go with Rails3 and Ruby1.9.2 and explain my opinion.

Rails3 went beta the first week of February 2010. I was just starting a project with a new client and we figured that going with Rails3.beta was the way to go because it would be final before the project was delivered. At that time, we were wrong. After less than a week, we retreated to 2.3.5 because there were so many little problems with rails and with bundler (and actually more with bundler than rails). (We were using ruby1.8.7)

That was 6 months ago.

In July 2010, another client started a project. Rails was now 3.0.0.beta4 and starting was much smoother. There were still places where changes from 2.x and documentation that was playing a bit of catch-up to the code gave us fits, but those were manageable. Have there been problems? Yes, but relatively minor (although we did submit a patch for a bug in ruby's CSV standard library). Rails3 forced a decision between ruby-1.8.7 and ruby-1.9.2-something (because it wasn't stable with 1.9.1) and we were at 1.9.2-r23238 (yes, a particular revision in ruby's SVN repository). Now we have an official Rails-3.0.0 release, Ruby-1.9.2-p0 release and gems that are quickly catching up. Seriously, the biggest issue with gems has simply been deprecation warnings -- they have worked fine.

There are *significant* differences in ActiveRecord between 2.x and 3.0 and routing has been completely overhauled, too. If you don't already have Rails2 projects, then you'll have to learn how Rails2 does things and then have to re-learn how Rails3 does the same things (because you *will* want to upgrade).

The documentation will catch up. The Rails guides are good and there has been over 6 months of beta/rc time for a lot of issues to be baked out of the final release. Any gem maintainers who may have been waiting for an official release no longer has to wait to put the final polish on their gems to make them ready for ruby-1.9.2 or to work seamlessly with rails-3.0.0.

Anyone starting a new project right now should definitely be using Rails-3 and Ruby-1.9.2 (or perhaps 1.8.7 if you're limited by your hosting environment, but if you don't have either 1.8.7 or 1.9.2 available then you maybe you need to find a new hosting provider).


Rob Biedenharn
Rob@AgileConsultingLLC.com http://AgileConsultingLLC.com/
rab@GaslightSoftware.com http://GaslightSoftware.com/