dynamic typing --> interpreter compiles the code at runtime(runtime computations are more than statically typed langs) global interpreter lock (one intrerpreter runs on one thread) multi processing is possible not thread safe