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

¿Qué tan mínimo debe ser un MVP (producto viable mínimo)?

Cómo comenzar a desarrollar una campaña de marketing para un nuevo producto

¿Debería Facebook ingresar al mercado de pagos en línea dada su cantidad de usuarios?

¿Cuáles son las empresas de desarrollo de productos en India para desarrolladores de redes punto?

¿Cuál es la diferencia entre el gerente de producto y el CTO?

¿Cómo se puede aplicar el método científico al desarrollo de productos?

¿Cuáles son las posiciones y procesos habituales en una empresa de producto o diseño industrial?

¿Deberían los desarrolladores de UI informar al Director de Ux en lugar del Director de Desarrollo de Aplicaciones en una empresa SaaS centrada en Ux?

¿Cuál es el proceso de desarrollo de productos del ciclo V en la industria automotriz?

¿Cuáles son las responsabilidades de un gerente de producto en cada paso del ciclo de vida del producto?

¿Podría un primer ministro describir su experiencia en el envío de un producto / característica de principio a fin, del concepto al lanzamiento?

¿Dónde encaja el desarrollo de productos en la jerarquía de gestión típica de una empresa web?

¿Qué influencia tienen los gerentes de ingeniería de Facebook en la hoja de ruta del producto?

¿Qué software combina la mayoría de las herramientas de administración de productos sin sobrecargarse?

¿Cuáles son algunos ejemplos de cómo se utilizan los datos para justificar malas prácticas de desarrollo de productos?