In my experience, what happens is usually that the first version gets run only a few times and there is a long cycle of iterative improvement.
Here, an interpreted/easily programmed environment like python is great.
But then there comes a point when you want to do more sophisticated statistical analysis. For me, that may be large ensemble statistics, or checks based on randomization hypotheses. Lots of new statistical algorithms (e.g. Markov Chain Monte Carlo) are predicated upon repeated and rapid computations.
"OK, that's great. Now let's see what happens over 10^6 bootstrap replications compared to ensemble average on 10^6 synthesized timeseries from a GARCH model with Bayesian parameter estimates. "
And then, you really need the speed. All of it, and more. The problem with switching is translation error, that your new model isn't quite the same as the old one in another language.
I don't think C++ is a very good numerical language for most uses, especially in early development. (I prefer Fortran 95---yes it's not your grandfather's Fortran).
C++ programs with significant use of C++ features and libraries tend to have fat tails in the difficulty of their bugs.
Here, an interpreted/easily programmed environment like python is great.
But then there comes a point when you want to do more sophisticated statistical analysis. For me, that may be large ensemble statistics, or checks based on randomization hypotheses. Lots of new statistical algorithms (e.g. Markov Chain Monte Carlo) are predicated upon repeated and rapid computations.
"OK, that's great. Now let's see what happens over 10^6 bootstrap replications compared to ensemble average on 10^6 synthesized timeseries from a GARCH model with Bayesian parameter estimates. "
And then, you really need the speed. All of it, and more. The problem with switching is translation error, that your new model isn't quite the same as the old one in another language.
I don't think C++ is a very good numerical language for most uses, especially in early development. (I prefer Fortran 95---yes it's not your grandfather's Fortran).
C++ programs with significant use of C++ features and libraries tend to have fat tails in the difficulty of their bugs.