views:

84

answers:

3

Why would I choose Ruby on Rails instead of PHP or ASP.NET when starting a new middle-sized project that has no restrictions? (not limited by hardware/operating system/memory/etc)

A: 

Well first it's a framework and not a language, so the answer will depend on which one you are more concerned with.

Ian
This seems much more like a comment rather than an answer
davidcelis
+4  A: 

It's not a "web programming language" (whatever that means); it's a web application framework written in Ruby (a programming language, though certainly not just for the web!).

I'd say the primary advantages of Ruby on Rails (RoR) are:

  • the productivity of the Ruby programming language in general
  • the "Convention over Configuration" paradigm that decreases how much the developer must write to see a webapp running in their browser
  • stronger adherence to "Don't Repeat Yourself" (DRY) principles than PHP or ASP.NET (though you can still repeat yourself all you like if you try hard enough try hard enough!)
Haywood Jablomey
+2  A: 

The primary advantages of Ruby on Rails are:

1: That it takes very little effort to get started in web application development.

2: There is a huge community built around it and loads of people who are happy to help you get going.

3: For many applications you don't even need to look at SQL (which doesn't mean that you shouldn't) 4: There are probably more tutorials for the different aspects of the Rails framework than there are for any web framework out there on the net. Summary: It's a great way to start your web application career, hobbykick, or what have you.

Some things that Ruby on Rails could do better:

1: Documentation, the proliferation of resources on the framework means it can be very hard to find thorough, concise and up-to-date documentation for certain plugins or gems. One SO user described it as "documentation via blogging."

2: When you work with Rails in the beginning you really don't need to know much of anything about your database. However, sooner or later you'll want to get more sophisticated with some of the SQL behavior, tune things to increase performance and so on. This may be a personal preference, but it's much harder to know what needs tuning when you have never needed to look at the SQL before. When studying, I generally learn simple things, then get more complicated and advanced as time goes on. With Ruby on Rails it can be very easy to omit learning the easy database stuff, then when it comes time to do advanced things, you have to go back and start from scratch.

Hope that helps.

nuclearsandwich