* sturlamolden:
On 12 Nov, 18:32, "Alf P. Steinbach" <al...@start.no> wrote:

Hm, this seems religious.

Of course Python is slow: if you want speed, pay for it by complexity.

Not really. The speed problems of Python can to a large extent be
attributed to a sub-optimal VM.

Perl tends to be much faster than Python.

Certain Common Lisp and Scheme implementations can often perform
comparable to C++.

There are JIT-compiled JavaScript which are very efficient.

Java's Hotspot JIT comes from StrongTalk, a fast version of SmallTalk.
It's not the static typing that makes Java run fast. It is a JIT
originally developed for a dynamic language. Without Hotspot, Java can
be just as bad as Python.

Even more remarkable: Lua with LuaJIT performs about ~80% of GCC on
Debian benchmarks. Question: Why is Lua so fast and Python so slow?
Here we have two very similar dynamic scripting languages. One beats
JIT-compiled Java and almost competes with C. The other is the slowest
there is. Why? Lot of it has to do with the simple fact that Python'
VM is stack-based whereas Lua's VM is register based. Stack-based VM's
are bad for branch prediction and work against the modern CPUs. Python
has reference counting which is bad for cache. Lua has a tracing GC.
But these are all implementation details totally orthogonal to the
languages. Python on a better VM (LuaJIT, Parrot, LLVM, several
JavaScript) will easily outperform CPython by orders of magnitide.

Sure, Google can brag about Go running at 80% of C speed, after
introducing static typing. But LuaJIT does the same without any typing
at all.

Good points and good facts.

And you dispensed with the word-splitting terminology discussion, writing just "The other [language] is the slowest". Currently. He he. :-)

And it is, as you imply, totally in the in-practice domain.


Cheers,

- Alf
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to