Le prestazioni dei linguaggi a confronto
Come scegliere il giusto linguaggio di programmazione per il vostro prossimo progetto? I linguaggi in circolazione sono molti, ognuno con i propri pregi e difetti, ma un aspetto da tenere bene in considerazione sono le prestazioni.
In questo articolo riporto i risultati di un test che ho effettuato per confrontare le prestazioni di 4 tra i più diffusi linguaggi del web, ovvero PHP, Javascript, Ruby e Java (oltre al C++ che, pur non essendo diffuso in ambito Web, è un ottimo punto di riferimento per il benchmark). Il banco di prova per queste tecnologie è l’esecuzione dell’algoritmo che risolve il famoso rompicapo della Torre di Hanoi.
La Torre di Hanoi è un rompicapo costituito da tre paletti e un numero di dischi di grandezza via via decrescente, impilati su uno di questi paletti. Obiettivo del rompicapo è spostare tutti i dischi da una pila ad un altra, potendo spostare soltanto un disco alla volta e potendo solo spostare un disco più piccolo al di sopra di uno più grande, mai viceversa.
Ho effettuato i test sul mio Mac ripetendolo, aumentando via via il numero di dischi della torre. Nel grafico che segue si vedono i tempi di esecuzione per un numero di dischi che varia tra 18 e 24.
Dal test emergono dei risultati piuttosto interessanti. A parte la facilmente prevedibile vittoria di C++, per la sua natura di linguaggio compilato, è interessante notare come linguaggi molto diffusi come PHP e Ruby soffrono molto il confronto con Javascript che invece tiene testa a C++. Già con 22 dischi Ruby impiega quasi 1 secondo per portare a termine l’algoritmo, PHP quasi 5 secondi, mentre Javascript si attesta a circa 170 millisecondi. Questo dimostra l’eccellente lavoro di sviluppo e ottimizzazione del motore V8 che sta alla base di Node.js, che si sta sempre più affermando come tecnologia per lo sviluppo di progetti web.
Riferimenti
Marco Visonà
Web & Mobile App Developer