Estoy a punto de comenzar un proyecto de simulación / modelado. Ya sé que OOP se utiliza para este tipo de proyectos. Sin embargo, estudiar Haskell me hizo considerar el uso del paradigma FP para modelar un sistema de componentes. Déjame elaborar:
Digamos que tengo un componente de tipo A, caracterizado por un conjunto de datos (un parámetro como temperatura o presión, un PDE y algunas condiciones límite, etc.) y un componente de tipo B, caracterizado por un conjunto diferente de datos (diferentes o el mismo parámetro, diferentes PDE y condiciones de contorno). Supongamos también que las funciones / métodos que se aplicarán en cada componente son los mismos (un método de Galerkin, por ejemplo). El estado mutable del objeto se usaría para parámetros no constantes.
Si tuviera que usar un enfoque OOP, crearía dos objetos que encapsularían los datos de cada tipo, los métodos para resolver el PDE (la herencia se usaría aquí para la reutilización del código) y la solución al PDE.
Por otro lado, si tuviera que usar un enfoque de FP, cada componente se desglosaría en partes de datos y las funciones que actuarían sobre los datos para obtener la solución para el PDE. Los parámetros no constantes se pasarían como funciones de otra cosa (tiempo, por ejemplo) o se expresarían mediante algún tipo de mutabilidad (emulación de mutabilidad, etc.). Este enfoque me parece más simple suponiendo que las operaciones lineales en los datos serían triviales.
Para concluir, ¿la implementación del enfoque FP sería realmente más simple y fácil de administrar (agregar un tipo diferente de componente o un nuevo método para resolver el pde) en comparación con el de OOP?
Vengo de un entorno de C ++ / Fortran, además no soy un programador profesional, así que corrígeme en cualquier cosa que me haya equivocado.