This is true, but there are a couple of points missing: firstly, many real-world programs are bound by factors other than the CPU, i.e. waiting for I/O or network events. In this case, benchmark speed differences between static and dynamic (or compiled and interpreted) are irrelevant. Secondly, the point of static typing is not merely for performance, but (hopefully) to catch some errors at compile time.