Doing Python on exceptionally small tasks makes me admire the dynamically typed nature of this language (no want for assertion code to hold track of types), which regularly makes for a faster and less painful development system alongside the manner. but, I experience that during a whole lot larger tasks this may virtually be a hindrance, because the code might run slower than say, its equal in C++. however then again, the use of Numpy and/or Scipy with Python may additionally get your code to run just as fast as a native C++ software (in which the code in C++ could sometimes take longer to broaden).
I publish this query after reading Justin Peel's touch upon the thread "Is Python faster and lighter than C++?" wherein he states: "also, folks who communicate of Python being gradual for critical range crunching haven't used the Numpy and Scipy modules. Python https://goo.gl/Zx5ehp is in reality taking off in medical computing these days. Of course, the velocity comes from the use of modules written in C or libraries written in Fortran, however it really is the beauty of a scripting language in my view." Or as S. Lott writes on the identical thread concerning Python: "...because it manages memory for me, I do not ought to do any reminiscence management, saving hours of chasing down middle leaks." I also inspected a Python/Numpy/C++ associated overall performance query on "Benchmarking (python vs. c++ the use of BLAS) and (numpy)" wherein J.F. Sebastian writes "...there is no difference between C++ and numpy on my machine."
both of those threads were given me to wondering whether or not there is any actual advantage conferred to knowing C++ for a Python programmerhttps://goo.gl/FNhVHm that makes use of Numpy/Scipy for producing software program to analyze 'large facts' in which overall performance is manifestly of top notch significance (but additionally code readability and improvement speed are a need to)?
Consultant working with Microsoft development tools and Database tools as a software architect for more than 20 years.
From my own experience, your question does not admit a "one size fits all" kind of answer, in fact, the answer should start with the (annoying): it depends.
I will start with describing how I work with the kinds of tools that you mention:
When I have to solve a new problem I start exploring the problem and prototyping the solution with Python and the usual toolset (NumPy, Pandas, SciPy, MathPlotLib, the works).
If the problem is an ongoing concern, instead of a being a "just one shot" nuisance, once I have a stable prototype, but need a more robust and performant solution for the long run, I start a new project to design such a solution with .NET (typically, with C#), either on Windows or on Linux, depending on the circunstances of the problem.
So if you face similar scenarios, that is, you need to have robust and performant solutions for the long run on many of your problems, my suggestion is to start getting friendly with a compiled language like C++ or C#, or some other, and follow an approach in the line of what I do.
Kind regards, GEN