I always tried to use the language provided by the best modeling and modeling tool (or library, if you want) to do the job for me.
And this question can only be answered, taking into account which models you want to implement. Continuous (e.g. ODE), discrete (e.g. StateCharts, Petri Nets), or a combination (e.g. a hybrid model that can be implemented using Simulink + StateFlow)? There are various tools for each type of model.
Another important aspect is the domain in which you work. Simulink has quite extensive libraries for electrical engineering, finance or computational biology (most of them are included in additional packages) - if you work in one of these fields, there may simply not be a better (that is, complete, reliable) library of components. applies to other commercial modeling packages such as AnyLogic , Arena , etc. Depending on your modeling problem, there may be some open source modeling tools.
Finally, you may prefer a particular programming language over another, and you may have additional requirements, for example. support
- Optimization (model parameters)
- Check
- Output analysis (statistics, graphs, statistical tests)
- Support for parallel and distributed modeling
- Model check
- ...
So, I'm currently working with Java with well-known advantages - fast enough, good multithreading support, relatively easy to use, etc. But if "fast enough" is not fast enough, but going down one level of abstraction :-)
source share