Hace tiempo hice algo parecido con los lenguajes de programación que entonces conocía, probando aquellos que eran de scripting, compilados y probando sobretodo, lo que tardan en levantar y hacer una operación tan simple como enumerar 100.000 números sacando por pantalla el número con un elevado a 2 de la posición en el que sale la impresión. Por ejemplo:

Hola 1
Hola 4
Hola 9
Hola 16
...

He realizado las pruebas en los lenguajes: C, Perl, Ruby, Python, PHP, Lua, Shell script, Erlang script y Java.

C

En lenguaje C se ha realizado el siguiente código:

#include <stdio.h>

main() {
        int i;

        for (i=0; i<0100000; i++) {
                printf("Hola %d\n", i*i);
        }
}

Perl

En el lenguaje Perl, se ha implementado el código siguiente:

#!/usr/bin/perl

for ($i=0; $i<100000; $i++) {
        print "Hola " . ($i*$i) . "\n";
}

Ruby

En Ruby, el código escrito ha sido:

#!/usr/bin/ruby

(1..100000).each do |i|
        puts "hola " + (i*i).to_s
end

Python

En Python, el código ha sido:

#!/usr/bin/python

for i in range(1, 1000000):
        print "Hola " + str(i*i)

PHP

En PHP el código escrito ha sido:

#!/usr/bin/php -q
<?php

for ($i=0; $i<100000; $i++) {
        print "Hola " . ($i*$i) . "\n";
}

Lua

El código de Lua escrito ha sido:

#!/usr/bin/lua

for i=1,100000 do
        print("Hola " .. (i*i))
end

Shell script

En shell script (en bash) se ha implementado lo siguiente:

#!/bin/bash

for i in $(seq 1 100000); do
        let RESULT=$i*$i
        echo "Hola $RESULT"
done

Erlang (Script)

Erlang también puede emplearse como lenguaje de scripting usando el intérprete escript. El código escrito para este intérprete ha sido:

#!/usr/bin/escript

main(_Args) ->
        loop(100000).

loop() -> ;
loop(I) ->
        io:format("Hola ~p~n", [I*I]),
        loop(I-1).

Java

El código que se ha usado para la prueba de Java ha sido:

public class loop {
        public static void main(final String[] args) {
                for (int i=0; i<100000; i++) {
                        System.out.println("Hola " + (i*i));
                }
        }
}

Resultado de las pruebas

Tras ejecutar 5 veces cada script, controlando el tiempo que toma cada uno hemos obtenido, según el equipo en el que se ha ejecutado. El equipo 1 es un Intel vPro con Debian GNU/Linux Lenny:

Lenguaje 1 2 3 4 5 Media
C (4.1.3) 0,02 0,02 0,02 0,02 0,02 0,02
Perl (5.10.0) 0,04 0,03 0,03 0,03 0,03 0,03
Ruby (1.8.7-p72) 0,16 0,15 0,16 0,16 0,15 0,16
Lua (5.1.3) 0,21 0,22 0,21 0,21 0,21 0,21
PHP (5.3.1) 0,41 0,47 0,43 0,33 0,29 0,38
Python (2.6.5) 1,13 1,11 1,15 1,16 1,14 1,13
Java (1.6.0_20-b02) 1,37 1,39 1,40 1,36 1,34 1,37
Erlang (R13B04) 3,65 3,62 3,65 3,65 3,56 3,62
Bash (3.2.39) 7,27 7,26 7,46 7,40 7,25 7,32

En el equipo 2, un Apple iBook G4 (PowerPC):

Lenguaje 1 2 3 4 5 Media
C (4.0.1) 0,22 0,34 0,55 0,32 0,35 0,35
Perl (5.8.9) 0,67 0,83 0,68 0,68 0,78 0,72
Ruby (1.8.6-p386) 2,91 3,21 3,20 3,13 3,52 3,19
Lua (5.1.4) 1,51 1,64 1,64 1,65 2,43 1,77
PHP (5.2.14) 2,51 2,48 2,55 2,37 2,77 2,53
Python (2.5.1) 17,49 16,91 17,41 17,40 16,92 17,22
Java (1.5.0_26-156) 7,60 5,92 5,72 5,90 6,02 6,23
Erlang (R14A, 5.8) 22,10 23,13 22,76 21,94 21,80 22,34
Bash (4.1.9) 135,19 223,56 181,40 136,19 133,46 161,96

Ordenados por velocidad, se ve que el lenguaje C, como cabía esperar, es el más rápido, seguido de Perl, como el lenguaje de scripting más rápido.