Rails vs. Asp.Net politics

I have the deciding vote in a new (rather large) web app we need to
develop. I am experienced in Rails, but the other 2 guys on the team
know only C# and very basic Ruby. About 25% of the app could benefit
from existing classes written in C#.

So I could force everyone to learn ROR, which they may or may not
thank me for, or I could learn ASP.NET. I know C# well but have never
used ASP.NET.

I doubt execution speed would be a factor, since the bottleneck will
be in the database and there would be very few concurrent users. We'd
make a lot of use of Ajax.

So is there any advice? Anything I should take into account? Has
anyone done large projects in both environments?

Les

···

--
Man's unfailing capacity to believe what he prefers to be true rather
than what the evidence shows to be likely and possible has always
astounded me. We long for a caring Universe which will save us from
our childish mistakes, and in the face of mountains of evidence to the
contrary we will pin all our hopes on the slimmest of doubts. God has
not been proven not to exist, therefore he must exist.

- Prokhor Zakharov

Leslie Viljoen wrote:

I have the deciding vote in a new (rather large) web app we need to
develop. I am experienced in Rails, but the other 2 guys on the team
know only C# and very basic Ruby. About 25% of the app could benefit
from existing classes written in C#.

Well you could sell it as a good CV move for them. In the end they will know C# and Ruby and Rails. Got to be a good thing if they ever want to move.

If you already have C# I'm not too sure of the value of adding ASP.NET to your CV.

How about picking a small slice of the app and doing two week-long spikes, one with each technology? That should be enough to let you have a more informed group discussion than you can now. Hopefully, consensus will emerge. If not, you can make your decision but your team will at least feel their ideas were given a shot.

Luke

···

On Nov 10, 2006, at 6:50 AM, Leslie Viljoen wrote:

I have the deciding vote in a new (rather large) web app we need to
develop. I am experienced in Rails, but the other 2 guys on the team
know only C# and very basic Ruby. About 25% of the app could benefit
from existing classes written in C#.

So I could force everyone to learn ROR, which they may or may not
thank me for, or I could learn ASP.NET. I know C# well but have never
used ASP.NET.

I doubt execution speed would be a factor, since the bottleneck will
be in the database and there would be very few concurrent users. We'd
make a lot of use of Ajax.

So is there any advice? Anything I should take into account? Has
anyone done large projects in both environments?

Les

--
Man's unfailing capacity to believe what he prefers to be true rather
than what the evidence shows to be likely and possible has always
astounded me. We long for a caring Universe which will save us from
our childish mistakes, and in the face of mountains of evidence to the
contrary we will pin all our hopes on the slimmest of doubts. God has
not been proven not to exist, therefore he must exist.

- Prokhor Zakharov

ASP.NET limits you to running on Windows. Rails runs well on Windows, Linux, BSD, OSX, and many more. So, Rails would give you much greater flexibility in choice of platforms.

-- Matt
It's not what I know that counts. It's what I can remember in time to use.

···

On Fri, 10 Nov 2006, Leslie Viljoen wrote:

So is there any advice? Anything I should take into account? Has
anyone done large projects in both environments?

} I have the deciding vote in a new (rather large) web app we need to
} develop. I am experienced in Rails, but the other 2 guys on the team
} know only C# and very basic Ruby. About 25% of the app could benefit
} from existing classes written in C#.
}
} So I could force everyone to learn ROR, which they may or may not
} thank me for, or I could learn ASP.NET. I know C# well but have never
} used ASP.NET.
}
} I doubt execution speed would be a factor, since the bottleneck will
} be in the database and there would be very few concurrent users. We'd
} make a lot of use of Ajax.
}
} So is there any advice? Anything I should take into account? Has
} anyone done large projects in both environments?

I have worked on large projects in both. As a language, I enjoy Ruby more
than C# by a significant but not huge margin. As a framework, I enjoy Rails
more than ASP.NET by a large margin. C# and ASP.NET make it slightly easier
to have many engineers working concurrently, but not by a whole lot. Where
it really gets interesting is in deployment. I am going to paint this in
rough brushstrokes, and make some generalizations, but I hope the
high-level view will be of use in making your decision. I'm also going to
use numbers without units, which are really only useful for relative
comparisons since they mostly represent a vague performance metric having
something to do with incoming requests based on my experience.

A single box running IIS/ASP.NET can probably manage at least 20-30. More
than that and you need more boxes and a load balancer, plus you need to
make sure that all of your shared state is in the DB (or another explicitly
shared resource) rather than ASP.NET's various implicitly shared resources
(e.g. class variables). You also have to figure out how to make sessions an
explicitly shared resource (it might be easy, but it's been a while and I
don't remember). It scales roughly linearly that way for a while, probably
to 500 or so, then gets much as when the shared resources become a
bottleneck.

A single box running a single Rails process (whether lighttpd or mongrel)
can manage maybe 5-15, depending on the demands of serving particular
requests. Beyond that you need at least multiple Rails processes and a load
balancer, with session data stored somewhere other than in-process memory
(memcached is a good choice). A decently powerful box with plenty of memory
should be able to manage enough Rails processes to support maybe 40-60.
After that, it scales roughly linearly as you add boxes and processors, up
to maybe 1000-1200. From there it gets significantly messier because you
need to deal with multiple levels of caching granularity, plus the same
concerns about shared resources as ASP.NET.

It sounds like your intended application will work well under either, given
your small team and expected deployment size. The main
tradeoffs I see for your app are the existing code and that while Atlas
makes AJAX stuff easier with ASP.NET if you have anything trickier than
what Atlas supports you will find it more difficult to deal with in ASP.NET
that you would in Ruby.

} Les
--Greg

···

On Fri, Nov 10, 2006 at 08:50:12PM +0900, Leslie Viljoen wrote:

I am scratching my head here, but isn't there some project out there
where guys are basically trying to make some version of Ruby.NET?

Basically some way of integrating Ruby (and therefore Rails) into
the .NET world. I am more familiar with JRuby which is an equivalent
project.

···

On 11/10/06, Leslie Viljoen <leslieviljoen@gmail.com> wrote:

So I could force everyone to learn ROR, which they may or may not
thank me for, or I could learn ASP.NET. I know C# well but have never
used ASP.NET.

So is there any advice? Anything I should take into account? Has
anyone done large projects in both environments?

Good afternoon,

I worked with both ASP.NET 1.1, VB.Net and C# along with SQL Server 2000
for about a year -- doing some logical modelling, testing and
development.

I have been working, currently, with Ruby, MySQL and TK -- doing a
statistical application. I'll work this app initially with Ruby (to get
the graphics and math down pat) and then convert it to RoR.

I found that ASP.Net to be a steep learning curve. In addition, it is
expensive, since you probably will want to use Visual Studio. The nice
thing about Visual Studio is that it links everything together -- the
database, the web and the languages C# and VB.Net...

Personally, since I am not developing large applications initially (but
if successful they could turn into a moderately sized commercial
package) I prefer Ruby.

The reason why I switched to Ruby (and RoR) is when I tried to upgrade
from ASP.Net 1.1 to ASP.Net 2.0 -- I was trying to use the 'trial'
software provided by Microsoft but I failed in my attempt to install SQL
Server 2005 -- currently, on my desktop, I will be unable to install any
version of SQL Server...after a few weeks of trying I finally gave up...

I will be purchasing an Apple desktop in the 1Q07 and will be doing all
my development on it, using Ruby, MySQL, RoR, Tk and possibly BLT or
some other graphics package...It's just more fun...

If you go with ASP.Net, let me know and I can give you some really good
references...

Good luck (to both of us)...
pat

···

--
Posted via http://www.ruby-forum.com/.

If you'll still be developing and deploying on a Windows box, you can
use RubyCLR to leverage your existing C# classes.

What is the timeframe for the project? I think you'd be much better
off spending the beginning of the project getting everyone up to speed

···

on RoR than doing concurrent development, since one team will have wasted 2 weeks of work when the decision is made. Is internationalization support required? Leslie Viljoen wrote:

I have the deciding vote in a new (rather large) web app we need to
develop. I am experienced in Rails, but the other 2 guys on the team
know only C# and very basic Ruby. About 25% of the app could benefit
from existing classes written in C#.

So I could force everyone to learn ROR, which they may or may not
thank me for, or I could learn ASP.NET. I know C# well but have never
used ASP.NET.

I doubt execution speed would be a factor, since the bottleneck will
be in the database and there would be very few concurrent users. We'd
make a lot of use of Ajax.

So is there any advice? Anything I should take into account? Has
anyone done large projects in both environments?

Les

--
Man's unfailing capacity to believe what he prefers to be true rather
than what the evidence shows to be likely and possible has always
astounded me. We long for a caring Universe which will save us from
our childish mistakes, and in the face of mountains of evidence to the
contrary we will pin all our hopes on the slimmest of doubts. God has
not been proven not to exist, therefore he must exist.

- Prokhor Zakharov

Leslie Viljoen wrote:

I have the deciding vote in a new (rather large) web app we need to
develop. I am experienced in Rails, but the other 2 guys on the team
know only C# and very basic Ruby. About 25% of the app could benefit
from existing classes written in C#.

Playing devil's advocate, if the rest of the team only really knows C#
and ASP.NET, it might not be wise to be headstrong and put a technology
that you as the minority consider shinier.

However, with the timeframe you mentioned, I think spending some time on
technology evaluation isn't completely out of the question. And it sure
as hell is a better way to find out what technology your team -as a
whole- will be more productive with than getting (undeniably biased)
opinions from here; I consider programmer-language productivity to be
not really an absolute metric, and it's always bound by requirements (if
you had to do something for which a library in Ruby is only very flaky,
that might cause a drop in that, etc.)

Also, performance and scalability issues are also to be considered. If
the bottleneck is in the database, I'd be wary of Rails and ActiveRecord
- the "making things easy" way with which it approaches ORM isn't too
convincing from the performance POV, and you might end up with dropping
down to SQL or low-level operations a lot. If you have someone with
database experience on the team, maybe iBATIS would be a better choice -
divorcing your ORM from your database schema would let you optimize
things on that level easier, if giving up some of the "Oooh! Aaah!"
factor. Either way, if you expect (read: absolutely know, this would be
a horror to rewrite later) that the load will be low, you could just do
a load test to see if ActiveRecord on whichever SQL server you'll be
using is Fast Enough (tm).

David Vallner

I think so, although in the backwater of South Africa, very few people
have ever heard of Ruby or Rails! I have yet to see a single book here
on either subject.

···

On 11/10/06, Peter Hickman <peter@semantico.com> wrote:

Leslie Viljoen wrote:
> I have the deciding vote in a new (rather large) web app we need to
> develop. I am experienced in Rails, but the other 2 guys on the team
> know only C# and very basic Ruby. About 25% of the app could benefit
> from existing classes written in C#.

Well you could sell it as a good CV move for them. In the end they will
know C# and Ruby and Rails. Got to be a good thing if they ever want to
move.

If you already have C# I'm not too sure of the value of adding ASP.NET
to your CV.

--
Man's unfailing capacity to believe what he prefers to be true rather
than what the evidence shows to be likely and possible has always
astounded me. We long for a caring Universe which will save us from
our childish mistakes, and in the face of mountains of evidence to the
contrary we will pin all our hopes on the slimmest of doubts. God has
not been proven not to exist, therefore he must exist.

- Prokhor Zakharov

go for Rails only !!
Rails is evolving a lot, i guess the two guys can easily be satisfied if u
just show them
a live little let say a small blogging application with some essential
features.

···

On 11/10/06, Luke Melia <lkmlists@lukemelia.com> wrote:

How about picking a small slice of the app and doing two week-long
spikes, one with each technology? That should be enough to let you
have a more informed group discussion than you can now. Hopefully,
consensus will emerge. If not, you can make your decision but your
team will at least feel their ideas were given a shot.

Luke

On Nov 10, 2006, at 6:50 AM, Leslie Viljoen wrote:

> I have the deciding vote in a new (rather large) web app we need to
> develop. I am experienced in Rails, but the other 2 guys on the team
> know only C# and very basic Ruby. About 25% of the app could benefit
> from existing classes written in C#.
>
> So I could force everyone to learn ROR, which they may or may not
> thank me for, or I could learn ASP.NET. I know C# well but have never
> used ASP.NET.
>
> I doubt execution speed would be a factor, since the bottleneck will
> be in the database and there would be very few concurrent users. We'd
> make a lot of use of Ajax.
>
> So is there any advice? Anything I should take into account? Has
> anyone done large projects in both environments?
>
> Les
>
> --
> Man's unfailing capacity to believe what he prefers to be true rather
> than what the evidence shows to be likely and possible has always
> astounded me. We long for a caring Universe which will save us from
> our childish mistakes, and in the face of mountains of evidence to the
> contrary we will pin all our hopes on the slimmest of doubts. God has
> not been proven not to exist, therefore he must exist.
>
> - Prokhor Zakharov
>

--
sur

Great idea!

···

On 11/10/06, Luke Melia <lkmlists@lukemelia.com> wrote:

How about picking a small slice of the app and doing two week-long
spikes, one with each technology? That should be enough to let you
have a more informed group discussion than you can now. Hopefully,
consensus will emerge. If not, you can make your decision but your
team will at least feel their ideas were given a shot.

If you'll still be developing and deploying on a Windows box, you can
use RubyCLR to leverage your existing C# classes.

I have looked at RubyCLR but it seems really green. I have not gotten
it working yet because last time I tried I couldn't compile it and
this time it's not working on Ruby 1.8.4 yet. I don't think I can
actually propose it for our projects yet, but I am eagerly watching
it.

What is the timeframe for the project? I think you'd be much better
off spending the beginning of the project getting everyone up to speed
on RoR than doing concurrent development, since one team will have
wasted 2 weeks of work when the decision is made. Is
internationalization support required?

Timeframe is about 6 months according to marketing, although our
initial estimate puts it at a bit over a year. The faster we can go
the better for us (obviously). A good question is which choice would
make the development quickest. Internationalization is not required
but may be after a few releases.

If we do the spikes, we'll start with Ruby and see how the others
adapt. If there are serious problems we'll investigate further, or
we'll just start design.

···

On 11/10/06, Scott <bauer.mail@gmail.com> wrote:

Leslie Viljoen wrote:
> I have the deciding vote in a new (rather large) web app we need to
> develop. I am experienced in Rails, but the other 2 guys on the team
> know only C# and very basic Ruby. About 25% of the app could benefit
> from existing classes written in C#.
>
> So I could force everyone to learn ROR, which they may or may not
> thank me for, or I could learn ASP.NET. I know C# well but have never
> used ASP.NET.
>
> I doubt execution speed would be a factor, since the bottleneck will
> be in the database and there would be very few concurrent users. We'd
> make a lot of use of Ajax.
>
> So is there any advice? Anything I should take into account? Has
> anyone done large projects in both environments?
>
> Les
>
> --
> Man's unfailing capacity to believe what he prefers to be true rather
> than what the evidence shows to be likely and possible has always
> astounded me. We long for a caring Universe which will save us from
> our childish mistakes, and in the face of mountains of evidence to the
> contrary we will pin all our hopes on the slimmest of doubts. God has
> not been proven not to exist, therefore he must exist.
>
> - Prokhor Zakharov

--
Man's unfailing capacity to believe what he prefers to be true rather
than what the evidence shows to be likely and possible has always
astounded me. We long for a caring Universe which will save us from
our childish mistakes, and in the face of mountains of evidence to the
contrary we will pin all our hopes on the slimmest of doubts. God has
not been proven not to exist, therefore he must exist.

- Prokhor Zakharov

Matt Lawrence wrote:

ASP.NET limits you to running on Windows. Rails runs well on Windows,
Linux, BSD, OSX, and many more. So, Rails would give you much greater
flexibility in choice of platforms.

Which few people actually need. It's a requirement to be evaluated as
any other, if you're doing a one-off app, or one for a long-term Windows
house, portability doesn't add value to the customer.

David Vallner

remember if you want it to be fair choose different parts of the app
to do in each tech. If you want your favorite tech to win spike the
same section of the app twice and do your favorite last because
re-implementing something is ALWAYS faster because you've already
solved most of the problems. :wink:

of course there's the "they don't know rails" which is going to hamper
the rails side of the test but if you do rails second all theproblems
will have been solved so it may take the same amount of time and you
can say "Wow same amount of time and they didn't even know rails!"

You did say "politics" after all, and politics as alllll about
spinning things to your advantage regardless of the "truth"...well, in
the US at least. :wink:

···

On 11/10/06, Luke Melia <lkmlists@lukemelia.com> wrote:

How about picking a small slice of the app and doing two week-long
spikes, one with each technology? That should be enough to let you
have a more informed group discussion than you can now. Hopefully,
consensus will emerge. If not, you can make your decision but your
team will at least feel their ideas were given a shot.

Luke

--
- kate = masukomi

Also, if you do end up looking back at C#, take a look at Monorail[0]. It's
an excellent framework to replace ASP.NET's page flow, with a more true MVC
architecture. It borrows a lot from Rails, but not to the point of porting
features that just won't work. Definitely something to check out!

[0]http://www.castleproject.org/monorail

···

On 11/10/06, Leslie Viljoen <leslieviljoen@gmail.com> wrote:

On 11/10/06, Luke Melia <lkmlists@lukemelia.com> wrote:
> How about picking a small slice of the app and doing two week-long
> spikes, one with each technology? That should be enough to let you
> have a more informed group discussion than you can now. Hopefully,
> consensus will emerge. If not, you can make your decision but your
> team will at least feel their ideas were given a shot.

Great idea!

--
===Tanner Burson===
tanner.burson@gmail.com
http://tannerburson.com <---Might even work one day...

Leslie Viljoen wrote:

···

On 11/10/06, Scott <bauer.mail@gmail.com> wrote:

If you'll still be developing and deploying on a Windows box, you can
use RubyCLR to leverage your existing C# classes.

I have looked at RubyCLR but it seems really green. I have not gotten
it working yet because last time I tried I couldn't compile it and
this time it's not working on Ruby 1.8.4 yet. I don't think I can
actually propose it for our projects yet, but I am eagerly watching
it.

What is the timeframe for the project? I think you'd be much better
off spending the beginning of the project getting everyone up to speed
on RoR than doing concurrent development, since one team will have
wasted 2 weeks of work when the decision is made. Is
internationalization support required?

Timeframe is about 6 months according to marketing, although our
initial estimate puts it at a bit over a year. The faster we can go
the better for us (obviously). A good question is which choice would
make the development quickest. Internationalization is not required
but may be after a few releases.

If we do the spikes, we'll start with Ruby and see how the others
adapt. If there are serious problems we'll investigate further, or
we'll just start design.

Leslie Viljoen wrote:
> I have the deciding vote in a new (rather large) web app we need to
> develop. I am experienced in Rails, but the other 2 guys on the team
> know only C# and very basic Ruby. About 25% of the app could benefit
> from existing classes written in C#.
>
> So I could force everyone to learn ROR, which they may or may not
> thank me for, or I could learn ASP.NET. I know C# well but have never
> used ASP.NET.
>
> I doubt execution speed would be a factor, since the bottleneck will
> be in the database and there would be very few concurrent users. We'd
> make a lot of use of Ajax.
>
> So is there any advice? Anything I should take into account? Has
> anyone done large projects in both environments?
>
> Les
>
> --
> Man's unfailing capacity to believe what he prefers to be true rather
> than what the evidence shows to be likely and possible has always
> astounded me. We long for a caring Universe which will save us from
> our childish mistakes, and in the face of mountains of evidence to the
> contrary we will pin all our hopes on the slimmest of doubts. God has
> not been proven not to exist, therefore he must exist.
>
> - Prokhor Zakharov

For RubyCLR, have you tried the gem? I installed the gem a couple weeks ago, and everything worked flawlessly.

All I can say is that you're not looking at my bookshelf :slight_smile: From where I sit in my South African backwater of a study, I see two Ruby books, plus a PDF or two. In my work environment, most people have heard of Ruby and Rails. Most view Rails with a certain scepticism, especially given that we do most of our work in Java. Looking at the scary complexity of many of the apps we produce for our customers, I can see why Rails, with it's "constraints are good" philosophy, may not be the best framework for every Web app. I must admit that I haven't done much work in Rails, but for me Ruby itself is a beautiful, elegant language that is a joy to program in.

Nithia

···

On 10 Nov 2006, at 14:23, Leslie Viljoen wrote:

On 11/10/06, Peter Hickman <peter@semantico.com> wrote:

Leslie Viljoen wrote:
> I have the deciding vote in a new (rather large) web app we need to
> develop. I am experienced in Rails, but the other 2 guys on the team
> know only C# and very basic Ruby. About 25% of the app could benefit
> from existing classes written in C#.

Well you could sell it as a good CV move for them. In the end they will
know C# and Ruby and Rails. Got to be a good thing if they ever want to
move.

If you already have C# I'm not too sure of the value of adding ASP.NET
to your CV.

I think so, although in the backwater of South Africa, very few people
have ever heard of Ruby or Rails! I have yet to see a single book here
on either subject.

hi
where are you from?
what's your msn?
i am create a software as a game for super games

···

2006/11/10, Leslie Viljoen <leslieviljoen@gmail.com>:

On 11/10/06, Scott <bauer.mail@gmail.com> wrote:
> If you'll still be developing and deploying on a Windows box, you can
> use RubyCLR to leverage your existing C# classes.

I have looked at RubyCLR but it seems really green. I have not gotten
it working yet because last time I tried I couldn't compile it and
this time it's not working on Ruby 1.8.4 yet. I don't think I can
actually propose it for our projects yet, but I am eagerly watching
it.

> What is the timeframe for the project? I think you'd be much better
> off spending the beginning of the project getting everyone up to speed
> on RoR than doing concurrent development, since one team will have
> wasted 2 weeks of work when the decision is made. Is
> internationalization support required?

Timeframe is about 6 months according to marketing, although our
initial estimate puts it at a bit over a year. The faster we can go
the better for us (obviously). A good question is which choice would
make the development quickest. Internationalization is not required
but may be after a few releases.

If we do the spikes, we'll start with Ruby and see how the others
adapt. If there are serious problems we'll investigate further, or
we'll just start design.

> Leslie Viljoen wrote:
> > I have the deciding vote in a new (rather large) web app we need to
> > develop. I am experienced in Rails, but the other 2 guys on the team
> > know only C# and very basic Ruby. About 25% of the app could benefit
> > from existing classes written in C#.
> >
> > So I could force everyone to learn ROR, which they may or may not
> > thank me for, or I could learn ASP.NET. I know C# well but have never
> > used ASP.NET.
> >
> > I doubt execution speed would be a factor, since the bottleneck will
> > be in the database and there would be very few concurrent users. We'd
> > make a lot of use of Ajax.
> >
> > So is there any advice? Anything I should take into account? Has
> > anyone done large projects in both environments?
> >
> > Les
> >
> > --
> > Man's unfailing capacity to believe what he prefers to be true rather
> > than what the evidence shows to be likely and possible has always
> > astounded me. We long for a caring Universe which will save us from
> > our childish mistakes, and in the face of mountains of evidence to the
> > contrary we will pin all our hopes on the slimmest of doubts. God has
> > not been proven not to exist, therefore he must exist.
> >
> > - Prokhor Zakharov
>

--
Man's unfailing capacity to believe what he prefers to be true rather
than what the evidence shows to be likely and possible has always
astounded me. We long for a caring Universe which will save us from
our childish mistakes, and in the face of mountains of evidence to the
contrary we will pin all our hopes on the slimmest of doubts. God has
not been proven not to exist, therefore he must exist.

- Prokhor Zakharov

Ah thanks, I am already using Castle ActiveRecord.
We do what little we can.

···

On 11/10/06, Tanner Burson <tanner.burson@gmail.com> wrote:

On 11/10/06, Leslie Viljoen <leslieviljoen@gmail.com> wrote:
>
> On 11/10/06, Luke Melia <lkmlists@lukemelia.com> wrote:
> > How about picking a small slice of the app and doing two week-long
> > spikes, one with each technology? That should be enough to let you
> > have a more informed group discussion than you can now. Hopefully,
> > consensus will emerge. If not, you can make your decision but your
> > team will at least feel their ideas were given a shot.
>
> Great idea!

Also, if you do end up looking back at C#, take a look at Monorail[0]. It's
an excellent framework to replace ASP.NET's page flow, with a more true MVC
architecture. It borrows a lot from Rails, but not to the point of porting
features that just won't work. Definitely something to check out!

[0]http://www.castleproject.org/monorail

--
Man's unfailing capacity to believe what he prefers to be true rather
than what the evidence shows to be likely and possible has always
astounded me. We long for a caring Universe which will save us from
our childish mistakes, and in the face of mountains of evidence to the
contrary we will pin all our hopes on the slimmest of doubts. God has
not been proven not to exist, therefore he must exist.

- Prokhor Zakharov