Al desarrollar productos y tecnologías para fines numéricos, ¿tiene sentido usar Fortran en el futuro o es hora de cambiar a C ++?

Depende de la tarea. También depende del entorno para el que está compilando. GCC, si no recuerdo mal, le permite vincular el código Fortran a C ++, lo que debe tenerse en cuenta.

Fortran generalmente compilará a un código más rápido que C o C ++ cuando le indique a una operación que se realice en un vector o matriz como una sola unidad, cuando compile código para un procesador que admita operaciones de vector. Esto se debe a que C y C ++ no tienen medios para expresar tales operaciones y, por lo tanto, debe confiar completamente en que el optimizador adivine que puede reemplazar un conjunto de instrucciones con el código de operación SIMD necesario. Puede, puede que no. Depende de cómo se escriba el código, qué indicadores de optimización estén presentes y qué mal funcione el optimizador.

(Si tiene alguna otra pieza de código que no se puede vectorizar absolutamente pero el optimizador insiste en que debería serlo, debe desactivar la opción. Es por eso que algunos indicadores de optimización no están habilitados incluso en -O2, y también por qué necesitas niveles en absoluto)

Sin embargo, si el rendimiento estricto no es un problema, o simplemente no obtendría nada valioso de las operaciones de vectores, entonces Fortran ofrece bastante menos.

Si necesita usar código numérico de un proveedor de código cerrado, no puede confiar en que el ABI trabaje con otro idioma que no sea el que está compilado. Los compiladores, en general, no manejan bien estos casos, ya que algunos idiomas no tienen una especificación ABI formal y el código comercial no se escribirá para facilitar la vida. Entonces, si tiene que usar una biblioteca NAG solo de Fortran, debe llamarla desde Fortran.

Si el código está escrito para una organización que tiene un cuerpo sólido de “conocimiento vivo” de Fortran y no mucho C ++, el mantenimiento, y de hecho las pruebas, se vuelven importantes. Cuanto más crítico es el código, más importante es tener un equipo que conozca todos los entresijos, debilidades y anomalías específicas del idioma, etc.

En todos los demás casos, C ++ es probablemente la opción correcta.

More Interesting

¿Cuáles son algunos ejemplos de productos o servicios donde la funcionalidad y la lógica de "tendencias" se implementan bien? ¿Pensamientos sobre una lógica de tendencias efectiva?

¿Qué tan efectivo es Stage-Gate para el desarrollo de nuevos productos? Y sin un grupo de I + D, ¿quién típicamente impulsaría el desarrollo de productos en una organización?

¿Qué herramientas utiliza el equipo de productos de Quora para la generación de ideas, investigación de mercado, desarrollo de productos, gestión de productos y proyectos?

¿Qué necesitaría para construir mi propio dispositivo GPS?

¿Qué significan DAU y MAU en el contexto de la gestión de productos?

¿Qué es mejor: hacerlo primero o hacerlo bien?

¿Qué industrias son malas para obtener comentarios de los clientes al inicio de sus ciclos de desarrollo?

¿Qué mejoras podrían hacer las Hojas de cálculo de Google que tendrían el mayor impacto en la popularidad del producto?

¿Cuáles son algunos de los rasgos de los equipos con mejor desempeño?

¿Qué importancia tienen los servicios de desarrollo de diseño de producto / modelo?

¿Cuál es la metodología de desarrollo de software ágil?

Cómo utilizar el desarrollo ágil de productos para encontrar el producto / mercado más rápido

¿Cómo desarrollar un nuevo producto textil?

¿Cuáles deberían ser los criterios de salida de la versión beta (para que pueda decidir iniciar la versión completa)?

¿Cuáles son los principales desafíos en la aplicación de la ciencia de datos como disciplina para el desarrollo de productos?