Penso che abbia senso fornire una visione un po 'alternativa e chiarire la questione.
FORTRAN vs. Fortran
Prima di tutto, bisogna distinguere il vecchio FORTRAN da il nuovo Fortran, dove, per convenzione, il nome della vecchia lingua è scritto solitamente in maiuscolo. Il vecchio FORTRAN (fino a FORTRAN 77) è effettivamente ancora utilizzato a causa di tonnellate di codice legacy, ma il nuovo Fortran (a partire da Fortran 90) viene utilizzato principalmente perché è un linguaggio molto elegante e semplice ma potente ed efficiente per elaborare i numeri .
DSL e GPL in generale
Nota in particolare che anche il Fortran moderno, a mio parere, è linguaggio specifico del dominio (DSL) e qui sta la sua relativa debolezza rispetto ad alcuni linguaggi generici (GPL) come il citato C ++: Fortran è specializzato per un compito particolare (elaborazione dei numeri) e potrebbe non essere così adatto per alcune attività correlate (ad esempio, analisi automatizzata dei risultati finali, la loro rappresentazione grafica, ecc.)
I linguaggi di uso generale, come C ++, offrono maggiore flessibilità (nelle funzionalità del linguaggio, nelle librerie di terze parti, ecc.) in modo da poter risolvere non solo l'attività principale (elaborazione dei numeri) ma anche l'attività correlata utilizzando la stessa lingua . Se, tuttavia, scegli Fortran per lo scricchiolio dei numeri, spesso devi usare un linguaggio in più (ad esempio Python) per queste attività correlate. Pensaci come se stessi usando due DSL differenti: uno per l'attività principale, un altro per le attività correlate. Naturalmente, potresti anche usare Python insieme a C ++, ma uno sviluppatore C ++ esperto (che dovresti essere se scegli di fare un po 'di scricchiolio in esso) non trarrebbe necessariamente vantaggio dall'usare un altro linguaggio invece del suo bestione C ++.
Fortran vs C ++ in particolare
Tutto questo è in qualche modo soggettivo, ma comunque ecco i miei 5 centesimi. Nel complesso, Fortran è più semplice di C ++, ma (e perché) C ++ è più ricco di funzionalità . Fondamentalmente, perché Fortran è DSL, mentre C ++ è GPL. E come ho detto, questo è soggettivo in una certa misura, e inoltre, la complessità è una delle cose più complesse nell'universo, quindi potremmo iniziare un dibattito su di esso, ma ehi, solo una parola: modelli e la discussione è in principio finito. I modelli rendono C ++ la bestia, ma tutto ha il suo prezzo.
Tieni presente che non ho detto che C ++ è più potente, poiché, a mio parere, "più ricco di funzionalità" non significa sempre " più potente". Dipende prima di tutto da se hai effettivamente bisogno di queste funzionalità aggiuntive in primo luogo o no? Scherzi a parte, hai bisogno del livello di generosità (e metaprogrammazione) che i modelli C ++ forniscono per il calcolo dei numeri? Non necessariamente. E se così fosse, C ++ non sarebbe più potente di Fortran, anche se sarà comunque più ricco di funzionalità.
I modelli non sono l'unica caratteristica di C ++ che Fortran non ha. Eccezioni e libreria standard: sono altre due caratteristiche evidenti che Fortran non ha. Ancora una volta, non è così probabile che trarrai grandi vantaggi da queste funzionalità per lo scricchiolio dei numeri. Ma alcune altre attività potrebbero essere molto utili, quindi C ++ come GPL li include mentre Fortran come DSL per il calcolo dei numeri no. Pensa a Fortran come a un "linguaggio a valigia" solo per lo scricchiolio dei numeri e al C ++ come a un "linguaggio a baule" per tutto.
C'è anche una grande caratteristica del linguaggio Fortran che C ++ non riesce ancora a raggiungere: i moduli. Voglio dire, moduli reali e non un antico meccanismo di preprocessore che mi irrita più di ogni altra cosa.