I refactored some scikit functions to APL and I found Python inscrutable in its own way: call flow bouncing from a file to another, from Python to Cython, method shadowing, and explicit parallelization. From a productivity standpoint Python must be great as it has bunch of libraries etc., but from actually understanding what is going on, I found it frustrating to work as a OOP-investigator. Even IDEs debuggers don't help once you mix in Cython.