Why C++ ? I like the YYY programming language !
Historically for process flowsheet simulation a variety of tools and languages have been used:
-
Standard, high-level general-purpose programming languages: FORTRAN IV, 77 and 90, Pascal/Delphi, C, C++, python…
-
Proprietary high-level general-purpose programming languages: VB, C#
-
Proprietary or special-purpose languages for modeling: Modelica, ASCEND, SPEED-UP, the ASPEN input language
-
Mathematical toolboxes and their proprietary languages: Matlab, Maple, Mathematica, Maxima….
Any one of these is a valid choice and can serve the purpose, but we argue that C++ is preferible because:
-
It sits on the descendant line of the very first Object Oriented Programming (OOP) language: Simula, which was conceived for modeling!
-
It is based on an international standard: “Programming Language C++” ISO/IEC 14882:2011 so no one will ever have it evolve in an arbitrary direction
-
Since 2005 industrial-strength compilers with a complete standard implementation are available an any possible platform
-
It can manipulate complex objects such as those used in the abstract description of reality in terms of process engineering (chemical component, phase, material stream, unit operation …), avoiding the use of a proprietary or domain-specific modeling language
-
There is a wealth of available third-party libraries (numerics, interfaces, graphics….) available for reuse and in particular there is much ongoing research on migrating numerical libraries from FORTRAN to C++
-
We see the first applications to real-time systems, migrating from C.