Heaven knows that saving milliseconds on printing "Hello, world" is a major priority with me.
Suppose that you were to demonstrate the Perl is even slower than Ruby. Would that make a difference for me? No, not unless I found that it was a bottleneck in our operations. I would keep on with Perl for two primary reasons: having used it since Perl 4, I know it in my fingers; CPAN.
The point here is to benchmark the startup time. Given how long can be some VMs to boot it's not that stupid.
The stupid things in that benchmark is that there is obviously something wrong with his ruby. Even rubinius should be an order of magnitude faster to load.
Nice how the test is performed on a release candidate version of Rubinius instead of a MRI release such as 1.9.3 or 2.0.0. This is quite a contrived test. Test it against MRI 1.9.3 and 2.0.0 and I'll consider it more accurate.
Code and comments in the same font and size? Irritating (at least on my phone)
2. When you talk at the end about awk and Rexx, you say they are from the 70s.. As if that's suppose to indicate they would be slower than a modern language. That's the opposite.. Of course a language designed to run on 40 year old hardware runs fat on modern hardware vs a language designed to run on modern hardware.
It's cool to see how all these little examples are run for a variety of languages -- which most devs haven't used.
A Clojure example would have been really slow because Clojure adds even more slowness to the already incredibly slow JVM startup time (big Clojure fan here btw).
But it's nothing new: we know that Java, for example, totally and utterly sucks at scripting and there's a reason why scripts commonly piped on Unx systems aren't written in Java.
You still can* do some scripting in Java (or Ruby for that matters) but you have to keep in mind that it's going to be really slow.
And, yes, startup time for scripts does matter: once again there's a reason why small utils regularly piped are typically written in languages allowing fast startup time.
Just in case this post isn't satire this post is inane. And I know I risk being seen as "that guy" with the shallow and dismissive comment.
Scripting languages should be "fast enough". That's an intentionally vague requirement. And Ruby is indisputably "fast enough" for a billion little usecases.
Of course it would be better if ruby were to start up instantly. But it's absolutely not a dealbreaker and to suggest Java is a better scripting language because it starts faster strikes me as idiotic.
The measurements in the post don't prove anything and it certainly doesn't prove that Ruby sucks at scripting. The author must know this. The author must also know that measuring the time needed for a print statement isn't a meaningful performance metric.
So that means this post is either satire or intentionally provocative idiocy. Either way I don't think it's HN material. Flagged.
post and measurements like these are kindergarden posts. which speaks volumes about the fact that usually end up on the front page. scripting is a process of putting some other process in motion (e.g. some that would do millions of calculations) and for starting such a process(es) an instruction is needed every once in a while.
This is a useless benchmark: there's no rhyme or reason for the version choices (rubinius?), the compile time is disregarded (which, for a one-off script, actually matters) and hello world is so trivial that it won't show any difference in development time.
How about choosing a nontrivial text processing example (print the second word of each line, for example) and compare the results between either a) all of the latest versions or b) the versions you would get from a fixed Linux distro (say, Ubuntu 12.04)
Write it in C or assembler and it will even be faster. That doesn't make them better choices for a script necessarily. This is one small part of picking the right path for the task at hand.
29 comments
[ 3.4 ms ] story [ 71.7 ms ] threadSuppose that you were to demonstrate the Perl is even slower than Ruby. Would that make a difference for me? No, not unless I found that it was a bottleneck in our operations. I would keep on with Perl for two primary reasons: having used it since Perl 4, I know it in my fingers; CPAN.
The stupid things in that benchmark is that there is obviously something wrong with his ruby. Even rubinius should be an order of magnitude faster to load.
real 0m0.429s user 0m0.215s sys 0m0.145s
As a comparison, for Java (java version "1.6.0_43") I got:
real 0m18.856s user 0m20.529s sys 0m3.093s
I’ve no idea how fast Rubinius is compared to MRI 1.9.3 or 2.0 but it’s not exactly the standard interpreter. I wonder why it was chosen?
Because I tried with ruby 1.9.3p327 (2012-11-10 revision 37606) [x86_64-darwin11.4.2] and the result is more
real 0m2.835s user 0m2.236s sys 0m0.449s
(of course the computer and the system are different but still)
This benchmark is totally stupid.
Wondering what happened to collective HN hivemind to upvote a post like this.
2. When you talk at the end about awk and Rexx, you say they are from the 70s.. As if that's suppose to indicate they would be slower than a modern language. That's the opposite.. Of course a language designed to run on 40 year old hardware runs fat on modern hardware vs a language designed to run on modern hardware.
A Clojure example would have been really slow because Clojure adds even more slowness to the already incredibly slow JVM startup time (big Clojure fan here btw).
But it's nothing new: we know that Java, for example, totally and utterly sucks at scripting and there's a reason why scripts commonly piped on Unx systems aren't written in Java.
You still can* do some scripting in Java (or Ruby for that matters) but you have to keep in mind that it's going to be really slow.
And, yes, startup time for scripts does matter: once again there's a reason why small utils regularly piped are typically written in languages allowing fast startup time.
So much for the science.
Lua: ~400-420ms
LuaJIT: ~390-400ms
Ruby: ~600ms
Scripting languages should be "fast enough". That's an intentionally vague requirement. And Ruby is indisputably "fast enough" for a billion little usecases.
Of course it would be better if ruby were to start up instantly. But it's absolutely not a dealbreaker and to suggest Java is a better scripting language because it starts faster strikes me as idiotic.
The measurements in the post don't prove anything and it certainly doesn't prove that Ruby sucks at scripting. The author must know this. The author must also know that measuring the time needed for a print statement isn't a meaningful performance metric.
So that means this post is either satire or intentionally provocative idiocy. Either way I don't think it's HN material. Flagged.
His rubinius is bugged or badly compiled. Anyone who try to reproduce his benchmark will see it.
$ ruby -v
$ time ./runner.sh ruby bogobench.rb Linode with Ubuntu:$ ruby -v
$ time ./runner.sh ruby bogobench.rbHow about choosing a nontrivial text processing example (print the second word of each line, for example) and compare the results between either a) all of the latest versions or b) the versions you would get from a fixed Linux distro (say, Ubuntu 12.04)
No common scripting lauguages Perl, Python (or php) in the comparison?
Node.js: 2.60s user 0.82s system 94% cpu 3.611 total
node -v
v0.8.9
ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-linux]