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 buenos recursos para los gerentes de producto que realizan encuestas / entrevistas de usuarios o clientes?

¿Qué compañías están mejor preparadas para revolucionar PLM?

¿Es bueno dejar un trabajo de software de desarrollo de productos para UPSC?

¿En qué se diferencian los gerentes de producto de Google de los de otras compañías tecnológicas?

Si una compañía lanzara un nuevo producto que fue desarrollado en secreto usando tecnología alienígena, ¿qué tan avanzado tendría que ser para informar a otras compañías que era de naturaleza alienígena y no solo una muy buena investigación y desarrollo de esta compañía?

¿Cuál es el significado de SKU en la distribución?

Startups: ¿El desarrollo de productos se vuelve más lento a medida que la organización crece?

Si está explicando un nuevo producto, pero la única referencia al tipo de producto es el producto de otra compañía, ¿menciona el otro producto (posiblemente competitivo), como explicar Lyft refiriéndose a Uber?

¿Cuáles son algunos algoritmos de aprendizaje automático utilizados para construir Duolingo?

¿Cuáles son los mejores libros o recursos disponibles para comprender cómo construir un modelo básico para evaluar el impacto financiero de los nuevos productos en el desarrollo?

¿Cómo son las responsabilidades típicas de un pasante de gestión de productos?

¿Cuáles son los componentes principales de una hoja de ruta del producto?

¿Cuál es la mejor aplicación de gestión de proyectos para los fundadores de startups que gestionan muchos subproyectos: Pivotal Tracker, Asana, Trello u otra cosa? Sería útil compartir ciertos proyectos con otros miembros del equipo, asignar tareas a otros, etc.

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

¿Qué hace que un propietario de un gran producto?