JIT Compiler

Mit pypy gibt es auch für Python einen Jit Compiler. Leider hat dieser zwei Nachteile: erstens, muss man Bibliotheken wie Box2d dort erneut installieren und zweitens ist die Geschwindigkeit nur leicht schneller als mit Standard-Python. Eine simples Programm zum Performance-Testen braucht normalerweise 5 Sekunden, in pypy braucht das selbe Programm dann 4 Sekunden. Das ist keine echte Steigerung.

Kommen wir nochmal auf das eigentlche Problem zurück. Demnach ist Python unglaublich leicht zu programmieren aber langsam, während C/C++ hohe Performance mitbringt aber schwer zu programmieren ist. Die Frage lautet also wie ein guter Wrapper aussieht um beides miteinander zu verbinden. Der Boost.Python Wrapper ist eine Qual. Aber möglicherweise bietet Python ctypes eine Alternative. Das ist eine Library mit der man externe C-Bibliotheken in Python aufrufen kann. Vorausgesetzt sie wurden mit dem fpic-Parameter kompiliert. In einem Test-Bespiel geht das erstaunlich gut. Man erzeugt zuerst die C-Library und kann das dann in Python aufrufen. Gleichzeitig dürfte eine C-Library auch das sein, was sich am besten in existierende Betriebssysteme integriert, so dass man auch mit anderen Hochsprachen wie C++ oder Java darauf zugreifen kann.

Machen wir es etwas konkreter: Angenommen man möchte ein performantes Spiel bauen, wie geht man da vor? Am besten ist es, zuerst den Prototypen in Python zu schreiben.. Dann wird der code nach C konvertiert und als Library verfügbar gemacht, um dann erneut mit Python darauf zugreifen zu können. So wäre die Best-Practice. Leider gibt es das Problem, dass diese Methode extrem aufwendig ist. Im Grunde verfielfältigt sich dadurch der Programmieraufwand.