I don't think most people are in this category. The big guys can also afford to manage the complexity of large applications. The group I'm talking about is made up mostly of smaller teams. In that case, I think you're better off using a more abstracted solution and investing in hardware if necessary.
Yes, of course there are extreme cases and of course there those applications that don't have millions of page impressions a day.
But then there are lot of medium sized applications that are popular and those won't scale at all with all I have seen from Rails. Those were the applications I was talking about.
In other words, don't chase efficiency for the sake of being efficient. Having an application which works but potentially needs more hardware at least gives you the option to deploy.
Of course, efficiency isn't all there is, but in most cases it does make a difference. I have some experience with website scaling, bringing from a few hundred visitors a day to tens of thousands concurrently. That's not an easy task and involves a lot of tradeoffs. And in my experience, for a site to be successful, you cannot compromise on response time. If it goes up too high, you will not be attractive enough for customers and will not be able to reak in the necessary monetary units to pay for all the hardware you need (and traffic bills, power, etc.).
Hardware might be getting cheaper, but there are problems which you simply cannot solve just with more hardware - that's one fallacy I have seen in real life more than once.
Every piece of software written is a commitment, even a Rails application. When you see that it might not scale in a few weeks time you might be out of luck, because you simply cannot make it run faster if the bottleneck is execution speed. Investing in servers that run twice or thrice as fast is probably not feasible in a startup, so that's a real world problem.
Don't get me wrong, I'd really like to see it perform - but IMHO it's not there yet. At least not for larger installations. Of course that shouldn't keep people from using it in smaller projects. Learning is a good thing :)
by Kay Roepke — Feb 06
I don't think most people are in this category. The big guys can also afford to manage the complexity of large applications. The group I'm talking about is made up mostly of smaller teams. In that case, I think you're better off using a more abstracted solution and investing in hardware if necessary.
Yes, of course there are extreme cases and of course there those applications that don't have millions of page impressions a day.
But then there are lot of medium sized applications that are popular and those won't scale at all with all I have seen from Rails. Those were the applications I was talking about.
In other words, don't chase efficiency for the sake of being efficient. Having an application which works but potentially needs more hardware at least gives you the option to deploy.
Of course, efficiency isn't all there is, but in most cases it does make a difference. I have some experience with website scaling, bringing from a few hundred visitors a day to tens of thousands concurrently. That's not an easy task and involves a lot of tradeoffs. And in my experience, for a site to be successful, you cannot compromise on response time. If it goes up too high, you will not be attractive enough for customers and will not be able to reak in the necessary monetary units to pay for all the hardware you need (and traffic bills, power, etc.).
Hardware might be getting cheaper, but there are problems which you simply cannot solve just with more hardware - that's one fallacy I have seen in real life more than once.
Every piece of software written is a commitment, even a Rails application. When you see that it might not scale in a few weeks time you might be out of luck, because you simply cannot make it run faster if the bottleneck is execution speed. Investing in servers that run twice or thrice as fast is probably not feasible in a startup, so that's a real world problem.
Don't get me wrong, I'd really like to see it perform - but IMHO it's not there yet. At least not for larger installations. Of course that shouldn't keep people from using it in smaller projects. Learning is a good thing :)