Creo que tiene sentido ofrecer un punto de vista algo alternativo y aclarar el asunto.
FORTRAN vs. Fortran
En primer lugar, hay que distinguir el antiguo FORTRAN del nuevo Fortran, donde, por convención, el nombre del antiguo lenguaje se escribe normalmente en mayúsculas. El antiguo FORTRAN (hasta el FORTRAN 77) se sigue utilizando debido a las toneladas de código heredado, pero el nuevo Fortran (a partir del Fortran 90) se utiliza principalmente porque es un lenguaje muy elegante y sencillo, pero potente y eficazmente implementado. para el cálculo de números .
DSL vs. GPL en general
Nótese específicamente, que incluso el Fortran moderno, en mi opinión, es _lenguaje específico del dominio_ (DSL) y aquí radica su relativa debilidad en comparación con algunos lenguajes de uso general (GPL) como el mencionado C++: Fortran está especializado en una tarea concreta (el cálculo de números) y podría no ser tan adecuado para algunas tareas relacionadas (por ejemplo, el análisis automatizado de los resultados finales, su representación gráfica, etc.)
Los lenguajes de propósito general, como C++, le dan más flexibilidad (en las características del lenguaje, en las bibliotecas de terceros, etc.) para que pueda resolver no sólo la tarea principal (el cálculo de números) sino también la tarea relacionada utilizando la misma lengua . Sin embargo, si elige Fortran para el cálculo de números, a menudo tendrá que utilizar una lengua más (por ejemplo, Python) para estas tareas relacionadas. Piénsalo como si usaras dos DSLs diferentes: uno para la tarea principal, otro para las tareas relacionadas. Por supuesto, también podrías usar Python junto con C++, pero un desarrollador experimentado en C++ (que se supone que eres si eliges hacer algunos cálculos numéricos en él) no necesariamente aprovecharía las ventajas de usar otro lenguaje en lugar de su bestia C++.
Fortran vs. C++ específicamente
Todo esto es algo subjetivo, pero de todos modos, aquí están mis 5 centavos. En general, Fortran es más sencillo que C++, pero (y porque) C++ tiene más funciones . Básicamente, porque Fortran es DSL, mientras que C++ es GPL. Y como he dicho, esto es subjetivo hasta cierto punto, y además, la complejidad es una de las cosas más complejas del universo, por lo que podríamos iniciar un debate al respecto, pero bueno, una sola palabra: plantillas y la discusión está en principio terminada. Las plantillas hacen de C++ la bestia, pero todo tiene su precio.
Tenga en cuenta que no he dicho que C++ sea más potente, ya que, en mi opinión, "más funcional" no siempre significa "más potente". Depende, en primer lugar, de si realmente necesitas esas características adicionales o no. En serio, ¿necesitas el nivel de generosidad (y metaprogramación) que ofrecen las plantillas de C++ para el cálculo de números? No necesariamente. Y si es así, C++ no será más potente que Fortran, aunque sí tendrá más funciones.
Las plantillas no son la única característica de C++ que no tiene Fortran. Las excepciones y la biblioteca estándar son otras dos características notables que Fortran no tiene. De nuevo, no es probable que se beneficie mucho de estas características para el cálculo de números. Pero en otras tareas pueden ser muy útiles, por lo que C++ como GPL las incluye mientras que Fortran como DSL para el cálculo de números no lo hace. Piense en Fortran como un "lenguaje de maleta" sólo para el cálculo de números y en C++ como un "lenguaje de maletero" para todo.
También hay una gran característica del lenguaje Fortran que C++ aún no ha podido alcanzar: los módulos. Es decir, módulos reales y no la antigua maquinaria del preprocesador que me irrita más que todo lo demás.
7 votos
Porque la gente empezó a escribir código hace mucho tiempo, y Fortran estaba (y sigue estando) muy optimizado para la traducción de fórmulas (por ejemplo, cálculos).
21 votos
Tenga en cuenta que el Fortran moderno (95, 2003, 2008) es muy diferente del FORTRAN 66 o 77.
5 votos
Sí, se te pasa algo por alto. 1) Fortran tiene una semántica ligeramente diferente. No tiene verdaderos punteros, por lo que el compilador puede ser un poco más liberal en las optimizaciones. 2) hay mucho código fortran heredado 3) fortran es mucho más simple, que C y especialmente los lenguajes "orientados a objetos".
3 votos
Para ciertos cálculos de matrices, Fortran es potencialmente más rápido que C/C++ debido a su supuesto de que los punteros nunca se aliasen entre sí.
1 votos
¿"No es una tarjeta perforada"? upload.wikimedia.org/wikipedia/commons/5/58/
0 votos
FORTRAN era una de las pocas opciones disponibles para desarrollar programas específicos de cálculo. En cuanto a las tarjetas perforadas, el formato de las columnas (que forma parte de la especificación del lenguaje) se diseñó teniendo en cuenta las tarjetas perforadas.
0 votos
@DavidZhang Eso se arregla fácilmente con el uso de la palabra clave restrict, que se añadió hace la friolera de 16 años.
7 votos
No olvidemos que muchos programadores científicos son en realidad pésimos programadores, y es mucho más fácil escribir algo razonable en Fortran que en C++.
0 votos
quora.com/
10 votos
LOL - Escribí mi primer programa en 1971 en FORTRAN utilizando tarjetas perforadas. Me pregunto cuánta gente sabe cómo configurar la tarjeta de control para una perforación de teclas. Otra señal perdida de ser un nerd era saber cómo enrollar una cinta de papel para un lector de punch de teletipo.