Cheers,
Yes, it is incredibly slow. Here's some benchmarks showing python is
significantly faster in everything but startup time. Even the author
of ruby says ruby is slow, and its planned to make it a bytecode compiled
language like everyone else in ruby 2.
http://shootout.alioth.debian.org/gp4/benchmark.php?test=all&lang=ruby&lang2=python
Benchmarks are fine but you should always check your specific setting
and application.
The author does not say that Ruby is slow and I know that Ruby 2 will
get faster with YARV (the bytecode compiler). But the question is if it
is fast enough. Ruby is clearly slower than Java, but Java is slower
than C, so why not use C?
Because of abstraction and verboseness. Java operates at a higher
abstraction level than C which make programmers more productive at the
cost of raw speed. The same argument can be made for Ruby vs. Java or
Ruby vs. PHP.
You can serve "millions of requests" with a cgi shell script too.
Just because your pages are very simple, and/or can be cached, doesn't
mean ruby is fast. For apps that are truely dynamic and cannot be
cached, it is horribly slow. Some of my complex pages can't even
manage 1 request per second in rails. The same thing gets 3 req/sec
on django. Buying 3 times as many servers just because you picked a
slow language with a bloated framework seems pretty dumb.
We have also very complicated dynamic pages that cannot be cached in one
piece. But fragment caching makes it very easy to cache parts of the page.
Buying 3 times the servers is an option if you pay less for the hardware
than for the developer time. In our case this is true.
With Ruby on Rails you get an incredible increase in productivity.
You can get the same (not really that incredible) increase in productivity
using a faster language with a similar framework, like perl or python, or
even java. It would be different if you were trading away execution speed
to gain programming speed, but using rails is trading away execution speed
for nothing.
I doubt that there is a more productive web framework in Perl or Java,
especially Java. Django may be another thing but I like to program im
Ruby and not in Python. From my experiences I can say that Djano is very
productive but not as productive as Rails.
I think that the discussion is stuck at this point as you claim one
thing and I another and the real arguments are gone.
Adam
Jonathan