Яку версію Fortran я повинен вивчити?


17

Я студент машинобудування, зацікавлений у галузі аерокосмічної інженерії, де, як мені кажуть, Fortran все ще часто використовується.

Яку версію Fortran я повинен інвестувати, щоб навчитися?


Не варто повного відповіді, але варто зазначити, що підтримки компілятора для останніх функцій Fortran вкрай не вистачає. Дивіться fortranwiki.org/fortran/show/Fortran+2003+status і fortranwiki.org/fortran/show/Fortran+2008+status Я б почав з 90/95 і працював уперед, якщо потрібно.
Дуг Ліпінський

Написавши деякі думки з цього приводу, будь ласка, дивіться stackoverflow.com/questions/953869/… stackoverflow.com/questions/3549702/…, якщо це може принести користь. Крім вищесказаного, я б рекомендував F90, а потім вивчити функції, оскільки вони вам знадобляться.
Грак

1
Зауважте, що Matlab походить з Фортран. На основі ваших коментарів я рекомендую вам оцінити цей варіант.
Денніс Джахеруддін

2
Ви навіть повинні навчитися Фортран на повній зупинці? Це може бути продиктовано кількістю застарілого коду, який потрібно використовувати - який також би диктував версію Fortran, яку ви повинні вивчити.
Демієн

Відповіді:


27

Трохи популярним неправильним є те, що існує "версія" Фортран, щоб знати. За рідкісним винятком, останні стандарти Fortran (і компілятори) зберігають чудову зворотну сумісність зі старими стандартами. Це з вагомих причин: не багато людей сьогодні би використовували Fortran, якби не велика кількість застарілого коду, який все ще використовується. Тобто, стандарт Fortran77, сумісний зі стандартами, майже завжди буде працювати з останніми компіляторами.

Вам слід навчитися використовувати найсучаснішу версію доступної мови. Можливо, F2008 не доповнив початківця нічого страшного, але введення F2003 об'єктно-орієнтованих концепцій, безумовно, велика справа. «Сучасний пояснений Фортран» - це гідне місце для початку, а «Науковий дизайн програмного забезпечення: Об’єктно-орієнтований шлях» також досить гарний для того, щоб насправді навчитися реалізовувати це на практиці.

Прагматично, якщо ви будете працювати над застарілим кодом (скажімо, F77 або раніше), в якийсь момент вам доведеться вивчити деякі речі, які вони зробили через відсутність функцій F90 +. Наприклад, якщо ви пишете код Fortran для чогось, ви ніколи не повинні використовувати те, що називається "загальним блоком", але ви завжди будете бачити, як вони з'являються у коді F77, який, можливо, доведеться використовувати.

Я ніколи не рекомендував би комусь почати працювати у Fortran без принаймні наборів функцій F90 / 95.

Це означає, що якщо ви не вмієте програмувати на іншій мові, ви, мабуть, знайдете консенсус, що Фортран - це не найкраща мова, яку слід вивчити як першу, навіть якщо ви їдете за космічним простором. (І я кажу, що як хтось в аерокосмічному просторі, який регулярно використовує Fortran і мав його як мою першу мову).


2
+1 "Я ніколи не рекомендував би комусь почати працювати у Fortran без принаймні наборів функцій F90 / 95." . Я другий, що. Почніть з F90, вивчіть усі основні функції, практикуйте кілька програм, а потім перейдіть до останніх випусків
Tymric

ЯКЩО не Fortran, яку мову варто вивчити, і яку практичну практику можна використовувати в техніці? Як Матлаб? Мені це потрібно для курсу, який я беру в наступному семестрі.
користувач26358

@ user26358 Python для програмування загального призначення, він має велику тягу в науковому співтоваристві. R для статистичного аналізу. MATLAB, Mathematica або Maple (що б не використовував ваш клас) для чисельних обчислень. SQL для реляційних баз даних. Javascript для веб-матеріалів і тому, що він стає мовою франкінгу. Я б не переймався з Фортрансом, поки хтось із них не зможе виконати роботу, це не приємна мова, щоб вивчити її як першу.
Шверн

@ Aurelius, я згоден з вашим останнім пунктом. Я вважаю, що правильний спосіб вивчити наукове програмування якраз протилежний мені досвід: python-> C ++, і на випадок, якщо вам це потрібно Fortran.
Нікола Каваліні

@ user26358 Matlab - це добре, і ви, ймовірно, будете використовувати його в школі багато. Python - це гарне місце для початку програмування загального призначення, і його модулі numpy / scipy можуть робити більшість речей, які ви, мабуть, робите в Matlab, і це хороше місце для вивчення основ написання програмного забезпечення. Ви обов'язково повинні мати хоч одну компільовану мову під поясом; C ++ був би найпопулярнішим вибором.
Аврелій

1

Я не погоджуюся з вами обома. C ++ і Python все ще не такі оптимізовані, як FORTRAN. Я б точно погодився, що FORTRAN 90/95 - мінімум. Однак завжди корисно використовувати інші більш сучасні версії. Завдання FORTRAN полягає в тому, що якщо ви його вивчите, перш ніж вивчити об'єктно-орієнтовані мови, це легко зрозуміти. Набагато складніше навчитися, якщо ти звик думати з предметами. Я викладаю клас суперкомп'ютерів і змушую своїх студентів використовувати FORTRAN. Це змушує їх використовувати різну логіку в програмуванні. Їм це не подобається, оскільки він не «думає», як Python або C ++. Все дійсно зводиться до того, що ви маєте намір зробити і наскільки важлива паралельність та ефективність.


Ласкаво просимо до SciComp.SE. Це виглядає скоріше як думка, ніж питання для сайту. Якщо ви вважаєте, що Фортран "[...] змушує їх використовувати іншу логіку в програмуванні", ви повинні розробити цей аргумент і сказати нам, чому це так. А також, що це за "логіка", яку ви згадуєте.
nicoguaro

2
@tmwitten: Ця відповідь повинна бути коментарем? Це, мабуть, занадто довго, щоб бути коментарем, і поза контекстом виглядає як не послідовник (наприклад, C ++ та Python не згадуються у питанні; "обоє", схоже, посилаються на Нікола та Аврелія).
Джефф Оксберрі
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.