I would not agree that Python is no better than Java for a multiprocessor application.
First, I guess the OP uses “better” to mean “faster code execution,” as far as I can tell.
Am I suffering from ugliness-speed syndrome, perhaps because I came from the C / ASM background, so I spent a lot of time getting to the end of “slow Python”? question.
A simple answer to this question? "May be." Here are a few important points:
1) When using a multi-threaded application, Python will have a drawback for any language that has nothing like GIL. GIL is a Python VM artifact in CPython, not a Python language. Some Python VMs, such as Jython, IronPython, etc., do not have a GIL.
2) The Multi-Process application doesn’t really use the GIL application, and now you can start executing your Python code more quickly without being subjected to more load from the GIL. I highly recommend that if you want to write large Python code that requires both speed and concurrency, you will learn about Multi-Processing and possibly ZMQ / 0MQ for messaging.
3) Regardless of GIL, Java displays faster code execution than Python in many areas. This is due to fundamental differences in the way Python handles objects in memory:
Several Python functions create copies of objects in memory, but do not modify them (see http://www.skymind.com/~ocrow/python_string/ for an example)
Python uses a dict to store attributes for objects, etc. I don’t want to be distracted and delve into these areas, but I can say that some of the “neat” things that Python can do are speed. It is also important to know that there are ways associated with the default behavior, if this leads to too high a speed for you.
4) Some of the benefits of Java speed are related to more optimization in the Java VM over Python, as far as I can tell. Once you resolve the differences in how much backstage memory / object work is done, Java can often still beat Python. Is this because Java has more focus than Python? I'm not sure, with enough funding, I feel that CPython can be faster.
I will say that I decided to accept Python almost 100%, promoting new code.
Do not fall into the trap of premature optimization and remember that you can always call C code as a last resort. Make your code workable, make it serviceable, and then start optimizing as soon as the application speed is not fast enough for your needs.
Interesting benchmarks:
http://benchmarksgame.alioth.debian.org/u64/python.php
More information on Python performance issues can be found here:
http://www.infoworld.com/d/application-development/van-rossum-python-not-too-slow-188715