Advantages of Rails over .NET for web

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.

Hope this helps.

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 :slight_smile:

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?

What are some of its strengths over Ruby/Rails?

I know people always talk about execution speed of ruby being slower
than other languages, especially compiled languages.

What are some others?

.NET was clearly designed to build interactive GUI windows applications
and is the best tool I know of for that job. .NET also lets you use the
tools to build web apps. Rails was designed for database-driven web
apps and is the best tool I know of for that job.

It may be that MS has more people working on web app tools (aspx and
such) than are working on Rails. But nevertheless the MS people are not
agile and quick: Ajax tools were integrated into Rails before there was
AJAX integration into .NET.

Rails is cheaper.

On the other hand, there is Silverlight, a new MS thing I don’t know
much about.

If your web app has to share an Enterprise database with a big system
built in .NET then going the .NET route might be easier for you. Under
those conditions Rails loses some of its brevity.

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.

Again, just one guy’s opinion.

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.

On Oct 11, 9:13 am, Warren S. [email protected]

Well,

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.

Regards,
Emil I.

On 11/10/2007, dima [email protected] wrote:

and definitely more FUN.
The truth is that you should be the master in one that suits you most

It may be that MS has more people working on web app tools (aspx and
built in .NET then going the .NET route might be easier for you. Under
those conditions Rails loses some of its brevity.

Posted viahttp://www.ruby-forum.com/.


My place to share my ideas:
http://vladev.blogspot.com

jimmyz wrote:

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.

Perhaps Softies on Rails can provide some insights:


Cheers,

  • Jacob A.