I was reading the post written in a blog (post1, post2) where the author compares various languages (Erlang, Python, Ruby, C, JavaScript, Lua, PHP, Common Lisp, Haskell), using a program which computes Pythagorean triplets. I just tried with ActionScript 3 and I'm not able to post any comments in that blog. So I'm writing it here.
import flash.utils.Timer;
var t0:int = getTimer();
trace( "result: " + pythag( 5000 ) );
var t1:int = getTimer();
trace( "Elapsed Time (s): " + String( ( t1 - t0 ) / 1000 ) );
function pythag( n:int ):int
{
var a:Number;
var b:int;
var c:int;
var i:int;
for( c=2; c<=5000; c++ ) {
for( b=1; b < c; b++ ) {
a = Math.sqrt( c*c - b*b );
if( Math.floor( a ) == a ) {
i++;
}
}
}
return i;
}
Time elapsed is 3.53s. That's fast. Giovanni Intini (the author of that post) was running on a dual core MacBook Pro. I'm running this on a Pentium D dual core. So it must be a fair comparison. So here are the comparison from that site.
| Language | Time (seconds) |
|---|---|
| C | 0.40 |
| Lua | 3.44 |
| ActionScript 3 | 3.53 |
| Erlang (smp) | 3.95 |
| Erlang (non-smp) | 5.66 |
| PHP 5 | 8.9 |
| Python (2.5.1) | 11.2 |
| Ruby | 12.30 |
| JavaScript | (script stopped - taking too much time) |