There's a lot of misinformation in this article. Dynamically typed languages are also compiled and, in fact, produce very fast and efficient code such as Common Lisp, Racket/Chez etc. On the flip side, there is no reason why a statically typed languages cannot be interpreted. Interpretation is merely a device used to make language implementation easier. Also, there are "half-way" solutions like virtual machines that mix compiling and interpretation which compile down to a bytecode that is then interpreted and compiling the byte-code to machine instruction becomes an optimization.