Abstractions and "proper design architecture" of the sort in this article have very little place in scientific code meant for the efficient study of complicated systems, at least.
It usually gets in the way of what's important: performance and scientific correctness.
It usually gets in the way of what's important: performance and scientific correctness.