Va inoltre sottolineato che non è possibile misurare / quantificare le prestazioni di un linguaggio di programmazione . Il meglio che puoi fare è misurare le prestazioni di una specifica implementazione della lingua su piattaforme specifiche, eseguendo programmi specifici.
Quindi quando chiedi di "il linguaggio funzionale più veloce", cosa stai chiedendo veramente sul meglio delle attuali implementazioni della / e lingua / e.
Il commento di igouy solleva il punto che ci sono altre misure di rendimento per l'implementazione del linguaggio; per esempio. tempo di compilazione. Ma ciò non cambia il fatto che il tempo di esecuzione del programma applicativo è una misura (indiretta) dell'implementazione di una lingua, non una misura della lingua stessa.
Considera Java per esempio. Supponiamo che io scriva un benchmark a thread singolo usando solo le caratteristiche linguistiche del classico Java (Java 1.0). Se compilo ed eseguo l'uso di JDK 1.0, otterrò una prestazione scadente ('cos JDK 1.0 non aveva un compilatore di codice nativo). Se vado da JDK 1.1 a ... JDK 1.7, molto probabilmente otterrò risultati progressivamente migliori. Ma questo non è dovuto alle modifiche alla lingua Java ... perché il mio benchmark utilizza lo stesso sottoinsieme di lingua. Piuttosto, l'accelerazione è dovuta a miglioramenti nei compilatori, nel sistema di runtime e / o nell'implementazione delle librerie di classi. Questi sono tutti problemi di implementazione .
L'altro punto è che queste differenze di implementazione possono essere davvero significative (ad esempio ordini di grandezza) per la stessa lingua. Quindi il fatto che la migliore implementazione per il linguaggio X sia più veloce della migliore (o unica) implementazione del linguaggio Y, necessariamente ti dice molto sul linguaggio stesso.