Sono uno studente di ingegneria meccanica interessato al campo dell'ingegneria aerospaziale dove, mi viene detto, Fortran è ancora comunemente usato.
Quale versione di Fortran dovrei investire il mio tempo per imparare?
Sono uno studente di ingegneria meccanica interessato al campo dell'ingegneria aerospaziale dove, mi viene detto, Fortran è ancora comunemente usato.
Quale versione di Fortran dovrei investire il mio tempo per imparare?
Risposte:
È un po 'un termine improprio che esiste una "versione" di Fortran. Con una rara eccezione, gli ultimi standard Fortran (e compilatori) mantengono un'eccellente compatibilità con le versioni precedenti. Questo è per una buona ragione: non molte persone userebbero Fortran oggi se non fosse per le grandi quantità di codice legacy ancora in uso. Vale a dire, un codice Fortran77 conforme agli standard funzionerà quasi sempre con gli ultimi compilatori.
Dovresti imparare a usare la versione più moderna della lingua disponibile. F2008 potrebbe non aver aggiunto nulla di terribile utile a un principiante, ma l'introduzione di F2003 di concetti orientati agli oggetti è sicuramente un grosso problema. "Modern Fortran Explained" è un buon punto di partenza e "Scientific Software Design: The Object Oriented Way" è anche abbastanza buono per imparare davvero a metterlo in pratica.
Pragmaticamente, se stai lavorando su un codice legacy (ad esempio F77 o precedente), a un certo punto dovrai imparare alcune delle cose che hanno fatto a causa della mancanza delle funzionalità di F90 +. Ad esempio, se stai scrivendo il codice Fortran per qualcosa, non dovresti mai usare quello che viene chiamato un "blocco COMUNE", ma invariabilmente li vedrai comparire nel codice F77 che potresti dover usare.
Non consiglierei mai a qualcuno di iniziare a lavorare in Fortran senza almeno i set di funzionalità F90 / 95.
Detto questo, se non sei esperto nella programmazione in un'altra lingua, probabilmente troverai un consenso sul fatto che Fortran non è la lingua migliore da imparare come prima, anche se stai cercando l'aerospazio. (E lo dico come qualcuno nel settore aerospaziale che usa regolarmente Fortran e lo ha usato come prima lingua).
Non sono d'accordo con entrambi. C ++ e Python non sono ancora ottimizzati come FORTRAN. Sono assolutamente d'accordo sul fatto che FORTRAN 90/95 sia il minimo. Tuttavia, è sempre utile utilizzare altre versioni più moderne. La sfida con FORTRAN è che se lo impari prima di imparare linguaggi orientati agli oggetti, è facile da capire. È molto più difficile imparare se sei abituato a pensare con gli oggetti. Insegno qui al corso di supercalcolo e costringo i miei studenti a usare FORTRAN. Li costringe a utilizzare un diverso tipo di logica nella programmazione. A loro non piace perché non "pensa" come Python o C ++. Tutto si riduce davvero a ciò che si intende fare e alla quantità di parallelizzazione e prestazioni importanti.