Quick note: When you use GTK or Cairo from python you are not actually using them "in python". You are calling their C code from python. So the gtk/cairo operations themselves (with the exception of a small amount of binding overhead) are about the same speed as if your app was in C. The python code you write though will run at python speed, which is rather slow