I've been hearing about Ruby on Rails for a while now. However, I've
been focused on a few development projects in ColdfusionMX. While I'm
intrigued about using a tool that could allow me to develop much
quicker, I have a few concerns that I'd like to throw out there for
Pro-Ruby people state how easy and quick it is to develop using
rails. Con-ruby people say that Ruby is very slow and inherently not-
secure. I've done a little digging but nothing that gives me enough
information to make a solid choice.
Anyway, the questions...
1) What can I realistically expect for performance using this
environment? How many connections can I expect to handle with a
server environment? I see there are accelerators like Mongrel as
well. How do I consider server and application sizing?
2) How secure is ruby? I'm sure there are things that I have to worry
about like validating data. But I need to worry about credit card
orders and personal information. What do I have to worry about?
Thanks for your time.
This is the kind of question that pops up periodically. There is no
easy answer to this. Practically everyone I've seen asking questions
about performance and scalability aren't even close to having any
concerns, whatsoever, about performance and scaleability.
Is Ruby slower than other languages, probably. Does it matter 90%+ of
the time, probably not. What matters is where you're bottlenecks in
performance are. Anytime the Internet and SQL databases are involved,
nearly all your performance and scaling issues relate to one of them.
You will also notice I keep separating performance and scaleability.
Does Rails scale? I think that's been proven by many sites that are
currently much larger than any site I currently have in mind.
So at the end of the day what's more important to you? The promise of
Ruby and Rails is shorter release cycles, development using beautiful
Ruby code, on a brilliant web framework. I've used a few web
frameworks in my time, but I have to say that Rails just makes
development fun for me again. I can move considerably quicker, with
much less effort, and I have more confidence in my code. This is due
to the clean, well structured nature of the Rails framework and the
ultra modern Ruby core.
I cannot give you a direct comparison of Ruby on Rails vs. Coldfusion.
I've seen CF code, but I've never written any myself. I'm a recovering
Java programmer myself. I believe our next Java Anonymous (JA) meeting
is the second Tuesday of the month.
So, here's the best advice I can give you. Try Ruby on Rails on for
size. I'm betting it hooks you in no time flat, and you'll soon be
posting some constructive comments to this excellent community of
This is a great reply, Robert, and your distinction between efficiency and scalability is an important one that I've been explaining to customers for a year now.
It's hard getting a project off the ground, right? But generally speaking, once the traffic is coming, you'll be able to pay the piper (assuming you have a business model, and if you don't you're in deep trouble in any case!).
The piper in this case is the indisputable fact that Ruby on Rails is less efficient at delivering page views than other platforms.
But (there's always a but) Rails is nearly as indisputably more efficient at getting a project up and going. And this is super important because that phase will almost always massively outstrip the cost of hosting during that crucial time frame.
It's also important to note that there are several solutions to the efficiency problem undergoing development:
1) Rubinius and other alternative Ruby implementations
2) Merb and other lightweight frameworks to handle the likely few pages of your application that generate the likely vast major of traffic when the traffic comes.