Honestly, my guess is that you were doing something wrong in the Go code. Go is definitely faster than Ruby, even on a single core machine. http://benchmarksgame.alioth.debian.org/u64/benchmark.php?te...
I'd love to know what I screwed up. The results surprised me:
https://gist.github.com/pkulak/99d2d5a5968b5fc03754
https://gist.github.com/pkulak/909d882614e0781e4525
bender:Desktop phil$ time go run primes.go
Found them! 78702
real 0m21.349s
user 0m21.304s
sys 0m0.033s
bender:Desktop phil$ ruby -v
ruby 1.9.3p194 (2012-04-20 revision 35410) [x86_64-darwin11.4.0]
bender:Desktop phil$ time ruby primes.rb
Found them! 78702
real 0m7.656s
user 0m7.651s
sys 0m0.005s
bender:Desktop phil$ time go build primes.go
real 0m0.269s
user 0m0.231s
sys 0m0.033s <...>
for j := 2; j < limit; j++ {
if i % j == 0 {
found = true
<...> math.Mod(float64(i), float64(j))
with i%j
My results: $ time go run primes.go
Found them! 78702
real 0m0.835s
user 0m0.787s
sys 0m0.039s
$ time ruby primes.rb
Found them! 78702
real 0m21.013s
user 0m21.005s
sys 0m0.016s(I understand that you did because the original poster did it)