The combination of threads,

The combination of threads, remote-procedure-call interfaces, and heavyweight object-oriented design is especially dangerous… if you are ever invited onto a project that is supposed to feature all three, fleeing in terror might well be an appropriate reaction. Eric S. Raymond