Es sollte auch darauf hingewiesen werden, dass Sie die Leistung einer Programmiersprache nicht messen / quantifizieren können . Das Beste, was Sie tun können, ist die Leistung einer bestimmten Implementierung der Sprache auf bestimmten Plattformen zu messen , auf denen bestimmte Programme ausgeführt werden.
Wenn Sie also nach der "schnellsten funktionalen Sprache" fragen, was Sie wirklich nach den besten der aktuellen Implementierungen der Sprache (n) fragen.
Der Kommentar von @igouy weist darauf hin, dass es andere Leistungsindikatoren für die Sprachumsetzung gibt. zB Übersetzungszeit. Dies ändert jedoch nichts an der Tatsache, dass die Laufzeit des Anwendungsprogramms ein (indirektes) Maß für die Implementierung einer Sprache ist und kein Maß für die Sprache selbst.
Betrachten Sie zum Beispiel Java. Angenommen, ich schreibe einen Single-Threaded-Benchmark, der ausschließlich die Sprachfunktionen von klassischem Java (Java 1.0) verwendet. Wenn ich mit JDK 1.0 kompiliere und starte, wird die Leistung schlecht (weil JDK 1.0 keinen nativen Code-Compiler hatte). Wenn ich von JDK 1.1 zu ... JDK 1.7 wechsle, erhalte ich höchstwahrscheinlich progressiv bessere Ergebnisse. Dies liegt jedoch nicht an Änderungen der Java- Sprache, da mein Benchmark dieselbe Sprachuntermenge verwendet. Die Beschleunigung ist vielmehr auf Verbesserungen der Compiler, des Laufzeitsystems und / oder der Implementierung von Klassenbibliotheken zurückzuführen. Dies sind alles Implementierungsprobleme .
Der andere Punkt ist, dass diese Implementierungsunterschiede für dieselbe Sprache wirklich signifikant sein können (z. B. Größenordnungen). Die Tatsache, dass die beste Implementierung für Sprache X schneller ist als die beste (oder einzige) Implementierung von Sprache Y, sagt also nicht unbedingt viel über die Sprache selbst aus.