Hey List,
The subject of this email is "Is Rails worth it?" Let me
start by saying I don't know, that's what I'm trying to decide.
Here is some background on myself. I come from a .Net
background where I have my MCSD.Net and MCDBA. I am proficient in
.Net, be it, Web, Windows GUI, Windows Services, or Web Services.
I like .Net. I think it is a great platform and I feel
"productive" in that environment. I would consider myself an
"advanced" .Net developer. What I mean by that is that I'm not a
beginner...I'm good at it.
When I first came across RoR, I was about 2 months into a
project using .Net. We, the dev team, had recently started using
Basecamp and had been joking about dropping .Net to give it RoR a
try. Well, we did. At the time, the main reasons were, in
no particular order, free press, the prototype library, a chance to try
something new, the MVC architecture, and Basecamp.
Now, here I am about 3 months into this project with RoR (5
months total) and I have some doubts about my decision to use
RoR. Besides the fact that I am proficient with .Net and knew I
could do everything that would be needed with it, here are a few things
lingering in the back of my head in regards to Rails:
1) When there is a large number of people using the app, will it
scale? And by large number, I mean 100,000+ users (albeit not
simultaneously.) PS. Yes, this is another "Will Rails Scale"
question.
2) While using ActiveRecord might save me 70% of my time in
development, what is the sacrafice when the system is live? I
guess it doesn't really bother me if I had to spend 70% more time in
development to have a more effecient data access layer for the life of
system, than one that sacarfices the use of stored procedures and
possibly generates excess noise in terms of data retreival. This
is probably the biggest issue for me. I'm coming from a
background where I write all the stored procedures and know excatly
what I'm getting. I have light and efficient sp's. If I
need three columns from three different tables, that's what I ask for,
and that's what I get. Yes, if I later need four, it's more of a
process, but again, "development" time in my situation is somewhat
cheap. I'm more concerned about a well running system than not
having to think to much about improvements and updates.
3) I hear a lot about web servers crashing, fastCGI needing manual
clean up, writing CRON jobs to handle session expiration, and several
other things that would be "no brainers" in something like .Net.
While I'm sure that all of these could be overcome, at what expense?
4) I develop on Windows. I'm not ashamed to say, that I like
windows. Will I forever be second rate if I develop with
Rails? What about and IDE, debugging, step into/through code?
As I mentioned in 1, many of my concerns are because I'm
expecting a BIG audience. Now, I realize that you can "tweak" AR
by defining your own sql, or using :include options, or many other
methods. But, at the end of the day, if I have to do all that,
what has ActiveRecord really done for me?
Ultimately, I'm looking for some people who are questioning or have
answered some of the things I've mentioned. That said, there are
some things that don't matter to me either:
1) .Net only runs on Windows (I don't care, it's a web app)
2) .Net & Windows is more expensive (debatable...it's a shared/hosted environment so the monthly difference is minute)
3) Windows is less secure (debatable)
4) .Net means Micro$oft (so?)
5) You'll be using SQL Server. (Good, I think it is much better)
Let me finish this by saying that I like Rails. I think it is a
solid framework. And while in my case the answer might end up
being "No, Rails is not worth it", I'm sure that in many others it is.
Thanks,
Matt