I will simply say that if you are comfortable doing your simulations in FORTRAN (which is essentially what Matlab/Octave is---very little difference in programming constructs, program structure, etc.), then by all means, stick with that.
Matlab and Octave are high-level interpreted languages focused on numerical computing, matrix operations, data visualization, and scientific tasks. Their syntax is similar to each other but has nothing in common with Fortran at the language level.
But there are reasons why most people have moved on to languages like python for clarity and maintainability. At some point you won't even need to deploy an argument like that: the sheer mindshare advantage of python (or its eventual replacement) will be all the reason needed to switch to it.
Certainly C/C++ is best if you care about speed. But I suspect that is irrelevant for the vast majority of engineering calculation/simulation work.
I personally don't see a strong need for Python in the context of engineering calculations or simulations. Matlab/Octave handles such tasks exceptionally well, especially for matrix operations and numerical algorithms.
If performance is critical or a more application-level implementation is needed, it's straightforward to write performance-critical components in C and call them from Octave using MEX interfaces. This provides a powerful and efficient workflow.
In this point of view, there are few, if any, areas where Python would offer a significant advantage. Python may be helpful for those less familiar with lower-level languages, but if you're comfortable with C, the combination of Octave and C covers most scientific and engineering needs effectively.
When complex object-oriented structures are required, I prefer to write in C#. While it's slightly slower than C, it offers a clean and readable OOP syntax along with strong safety features - such as bounds checking and memory management, which help avoid issues like buffer overflows or accessing freed memory. This makes development more robust without sacrificing much performance in most engineering applications.
Another alternative for OOP development is Java. Its JIT compiler is amazingly fast - in many cases, performance comes very close to that of C compiler.
But Python still relies on an interpreter and lacks JIT compilation, making it very slow. I also don't see compelling use cases for it, as there are more suitable alternatives for other languages available.
Certainly the $$$ licensing costs of Matlab are part of the reason, but at some point the reasons don't matter anymore---you'll need to switch just to benefit from the larger body of tools/expertise/code.
GNU Octave is free and can run almost any code written for Matlab.
I hope you are using Matlab, the real thing. Because I'd trust any of the standard python packages over Octave for accuracy and correctness, any day.
I used to work with Matlab and R in the past, but nowadays I primarily use Octave. Based on my experience, Octave provides more accurate results than standard Python packages, mainly because Python libraries tend to use simplified algorithms in many cases, whereas Octave implementations are often more complete and closer to the original mathematical formulations.
That said, there are indeed some differences between Octave and Matlab - for example, certain windowing functions may produce slightly different results. These differences aren't necessarily incorrect, but they can diverge from Matlab's output due to implementation details. If you want exactly the same result on Matlab and Octave using such functions, you can replace it with your own implementation and it will works exactly the same. Nonetheless, for many engineering and scientific tasks, Octave remains a reliable and precise tool.
I have greater trust to Octave than to Python.
In the past, I frequently used C# for filter design and graphical visualization via Direct2D for GPU-accelerated vector graphics on Windows. However, Octave now offers a very convenient Qt-based plotting backend, which I’ve complemented with a few custom wrappers to streamline usage. For example, loading a WAV file, computing its FFT, and plotting the spectrum takes just a few lines of code in Octave. Surprisingly, even a 32 million-point FFT runs very efficiently even on a Raspberry Pi, faster than FFTW.
PS: and another issue with Python, is that their packages often contains malware and spyware which steal your credentials, personal data and tracking information...