M. Edward (Ed) Borasky wrote:
The raw numbers that went into this are from the Alioth shootout
page, and what I haven’t done is checked out which versions of
Perl, Python, YARV, Ruby, jRuby and PHP these tests used. They
could be years old or they could have been run yesterday morning.
I discarded all the tests for which there were any missing values.
Ruby 1.9.0 (2007-08-14 patchlevel 0) [i686-linux]
Ruby 1.8.6 (2007-03-13 patchlevel 0) [i686-linux]
Ruby 1.8.5 (2007-06-07 rev 3841) [i386-jruby1.0]
PHP 5.2.2-pl1-gentoo (cli)
You haven’t mentioned how many remained after you discarded those with
missing values: at least 7 discards - Ruby 1.9.0 has 5, PHP another
one, JRuby another one. Did you actually include “hello world”?
Now suppose your boss comes to you, as bosses do, and says,
“well, all them high-falutin’ box plots are dandy, but the board
of directors wants one number for each language!” It turns out
(and I’ll let Google and Wikipedia fill in the blanks for you)
that the one number you want to give your boss, aside from your
cell phone number, is the geometric mean of all the benchmark
ratios. Again, smaller is better.
geometric mean (of ratios to most performant program):
It’s pretty clear to me from these numbers is that the only
reason that deploying web applications on the LAMP stack and its
cousins using PostgreSQL, Perl, Python and Ruby is economically
viable is that they spend most of their time either in the database
or on the network.
As in - “we have found that the CPU time is rarely the limiting factor;
the expressibility of the language means that most programs are small
and spend most of their time in I/O and native run-time code.”
Fussy? Opinionated? Impossible to please? Perfect. Join Yahoo!'s user
panel and lay it on us.