Por qué la programación orientada a objetos no ha ganado popularidad en la informática científica
Dos razones. Una es que la mayoría de los algoritmos en el campo de la informática científica se describen directamente en términos orientados a procesos. Esto es obvio porque los algoritmos procesan datos para obtener los resultados requeridos. Este conjunto de lógica es familiar para los investigadores en este campo, por lo que incluso si eligen C/C++ para programar, naturalmente adoptan un paradigma orientado a procesos. La segunda es que la formación en programación que reciben los investigadores en el campo de la informática científica no es suficiente para permitirles dominar los métodos de programación orientada a objetos. Cuando el nivel es insuficiente, la eficiencia de ejecución de los programas escritos utilizando métodos orientados a objetos puede ser muy pobre, lo que no cumple con los requisitos de alta eficiencia de la informática científica.
Pero esto no es absoluto. Por ejemplo, en el campo de los autómatas celulares, la mayoría de los programas pueden estar orientados a objetos, porque la descripción de este método es muy consistente con el método orientado a objetos, y porque esto. El campo se ha desarrollado rápidamente recientemente y ya hay suficientes investigadores en el campo que tienen la capacidad de utilizar C ++ para el desarrollo orientado a objetos.
Además, es particularmente importante tener en cuenta que después de entrar en el nuevo siglo, cada vez más personas han comenzado a utilizar C/C++ e incluso recientemente Python para la informática científica, pero esto no significa que el objeto- orientado está en su posición dominante en la arquitectura de programas, la mayoría de los programas C/C++ para informática científica todavía están orientados a procesos, o esencialmente orientados a procesos, con cierta encapsulación en el nivel superior basada en objetos. Noté que el elemento Fortran se agregó a la etiqueta de la pregunta. Creo que todos deben distinguir el paradigma de programación orientada a procesos/orientada a objetos del lenguaje específico (Fortran/C/C++/Python). Python/C++, con el que estoy más familiarizado, admite múltiples paradigmas de programación orientados a procesos/orientados a objetos. Además, la eficiencia operativa del lenguaje Fortran no es mayor que la de C/C++, y el rendimiento de los dos campos es casi el mismo
Finalmente, personalmente, ahora uso tecnología de programación más genérica como núcleo. Un estilo de programación en el que conviven múltiples paradigmas. Se ha dado la definición anterior: "El algoritmo es el proceso de procesar datos para obtener los resultados requeridos". Por lo tanto, los genéricos separan el tipo de datos del proceso de operación, maximizan el grado de reutilización del código y básicamente no pierden la eficiencia operativa. , en mi opinión, se adapta muy bien a las necesidades de la computación numérica. Pero pocos investigadores en informática científica tienen la capacidad de dominar y explotar este paradigma en toda su extensión.