I don't want to incite a religious war here. I'm looking for case
studies and good arguments for using Rails for a large corporate
website rather than using .NET.
Most of the arguments I see are about Rails vs php or Rails vs Java. I
have enough experience with Java, php, and Ruby/Rails to back up most
of the common arguments such as "Rails allows for quicker development
and less time on configuration (vs. Java)," "Rails helps keep your
code organized, maintainable, and flexible (vs. php)," etc.
I don't have much experience with .NET, but I know there are people
out there that do have lots of .NET experience and choose Rails. What
are your reasons?
I've seen a lot of "licensing cost" arguments, but the company I'm
consulting already has Microsoft software licenses.
I know Rails isn't the silver bullet and the right platform for every
scenario. However in my experience, Rails has proven to be an awesome
framework for web applications.
I don't have much experience with .NET, but I know there are people
out there that do have lots of .NET experience and choose Rails. What
are your reasons?
First, let's turn the question on its head: What are the reasons *to* use .Net? My experience with .Net was that, as a framework, it tries to serve too many masters -- client, Web, etc. Additionally, I found the separation of responsibilities of the various components of the architecture less clearly delineated than with Rails. Testing is not "baked it," as with Rails, making it easier to ignore. Finally, the deployment scenario felt quite brittle to me -- I know it's supposed to be "just an xcopy," but I found things didn't always work that way. Capistrano has made Rails deployment a dream. Vlad appears to be promising for this as well.
All of these obstacles can be overcome, but Rails makes it easier to do the "right thing" and you have to go somewhat out of your way to really screw up. Also, bear in mind that fewer lines of code == less exposure to bugs. Rails apps are typically much more concise than are .Net apps with similar functionality. Just try setting up a data source to see what I mean.
As Phillip says, if you have deep experience in the .Net framework, then it’s probably a better bet. The CDBaby thing was an example of a company with little Rails or Ruby expertise (or buy-in) moving to Rails “just cuz.” Once they reached their discomfort level, they switched back to PHP – a place they found more consistent with their core competencies (anyone jump in and correct me if I’ve mischaracterized this).
Also, if your devs are into page objects with behaviors – widgets, if you like – then .Net offers components in a way Rails doesn’t. OTOH, these components are black boxes. They have published APIs, but what do they really do? What are their performance characteristics? What do they add to the cookie or session stores? You see where I’m going with this?
Regarding compiled vs. interpreted, my personal opinion is that the request/response cycle is simply too short for compiled code to be much of a factor. A well architected application will always outperform one with poor architecture. These are the days of scaling horizontally. If designed properly, the speed of the executing code should not affect the overall performance of the application to the point where you can’t remedy it with more hardware. Good reference on scaling with Rails is twitter (google “scaling twitter”).
If you are a strongly-typed language fan, then C# might jingle a few bells for you. I find it has a lot of syntactic noise and doesn’t offer a lot that Java doesn’t.
Look, the two platforms do what they are advertised to do. .Net knows a bit more about system internals and can take some efficiencies from that. Rails is a whole different religion and with the TDD/BDD agile focus that is layered in with Rails, my experience is that it’s faster to build, easier to maintain, and more pleasing for the client as work is being delivered.
Thanks for the reply. This is exactly the type of stuff I'm looking
for. I like your suggestion of turning the question on its head.
So, what are some of the reasons *to* use .Net?
Well, you said your company is already entrenched in microsoft... so if
all your talent is microsoft-centric, etc. etc. etc... that would be a
reason to stick with it.
Maybe not a super good reason, but along the lines of the answer to what
is the best linux distro to run rails on is whichever one you sysadmin
knows the best to begin with
I would like to share my experience since I work in both of them.
First of all and I repeat it lot, there is no golden hammer.
Most of my clients are on Windows.
We are developing desktop and web applications.
Mostly c# but also FLEX, php and Ruby on Rails.
Witch one should we use depends on a particular project requirements.
We deal with lot of proprietary windows based systems.
We strongly try to wrap them in an OS and language independent service
and used it in most suitable fashion.
Naturally that is not always possible.
Since this is about web development the situation is clearer.
RoR is preferable web development framework.
It is easier to learn, more RAD, more maintainable, more agile, faster
in prototyping, more DRY, has better build in development philosophy
and definitely more FUN.
The clients requirements are the most important and we have to fulfill
them in a best suitable way.
To kip the story short, you have to have a lot of tool in your tool
box use the right one for the job.
There is always something you can learn from using different
frameworks.
The more you learn the better you become.
The truth is that you should be the master in one that suits you most
and proficient in others.
I’ve used .NET for a while and now getting into Ruby/Rails. There are some differences:
The development time for most of the projects is less with Rails, mostly due to Ruby being a dynamic language.
The idea about having a components packed together, for me, is better than having a huge pile of stuff, each dependent on others.
.NET applications will run faster than rails, by a lot.
About deployment - there aren’t any problems with .NET - just copy and - that’s it.
Also the integration between all MS products (MSSQL, Visual Studio, .NET, Windows Domain, IE…) is very good, but… it’s mainly only for MS products. No Linux (mono doesn’t support .NET 2.0).
Unit testing no bundled is a shortcoming, but NUnit will fix it. Remember, .NET is a component-based framework, so extending it is easier. Also, there is MSDN.
And, of course, developing with RoR will be faster and, most probably, more entertaining. The Ruby/Rails communities are great!
Both technologies will take you to the place, you are going, with both you will have bumps on the way, they will be just on different regions.
I don't want to incite a religious war here. I'm looking for case
studies and good arguments for using Rails for a large corporate
website rather than using .NET.
Most of the arguments I see are about Rails vs php or Rails vs Java. I
have enough experience with Java, php, and Ruby/Rails to back up most
of the common arguments such as "Rails allows for quicker development
and less time on configuration (vs. Java)," "Rails helps keep your
code organized, maintainable, and flexible (vs. php)," etc.
I don't have much experience with .NET, but I know there are people
out there that do have lots of .NET experience and choose Rails. What
are your reasons?
I've seen a lot of "licensing cost" arguments, but the company I'm
consulting already has Microsoft software licenses.
I know Rails isn't the silver bullet and the right platform for every
scenario. However in my experience, Rails has proven to be an awesome
framework for web applications.