Comments 18
Примеры-то на Фортране 90, и то не вполне корректные.
Это язык, который очень честно показывает, как устроена программа: типы, память, вычисления, дисциплина в коде
Раз уж начали рассказывать про это, так расскажите полностью: какова точность INTEGER и REAL, сколько занимает LOGICAL, есть ли разделение памяти на стек и кучу и как вообще происходит выделение памяти, как происходит передача параметров в функцию, почему в конце концов вычисления более эффективны чем на любом другом языке со статической типизацией (а может, это и не так??) и т.д. Тогда статья может оказаться кому-то полезной.
Справедливое замечание. Это вводный туториал для тех, кто только знакомится с языком, поэтому точность типов, модель памяти и передача параметров сознательно остались за кадром. Планирую разобрать эти темы отдельно — они заслуживают полноценной статьи, а не пары абзацев в конце вводной.
Это вводный туториал для тех, кто только знакомится с языком
Это плохой вводный туториал. Вводный может петь за типы, память и вычисления (кстати, про память ничего не сказано) только после того, как рассказано, пусть кратко, главное
на каких платформах есть (а тут вроде как есть что сказать про WebAssembly)
какие есть базовые функции (сборщик мусора, подсчёт ссылок, ООП, дженерики, hot reload...) и каких нет
как выполняются параллельные вычисления
что можно сделать с и без FFI (на вскидку - много и писать одни файлы исходя из других)
насколько быстро и прожорливо будет работать
сколько выживших диалектов
Тут сразу многие отсеятся и можно переходить к второму и тоже главному - где брать библиотеки, те, что без малвари.
И вот теперь останутся те немногие, кому интеесно то, что в статье. Если же Ваша цель в том, чтобы отвадить от смотреть в сторону Fortran, то туториал отличный.
каждая программа должна начинаться с
IMPLICIT NONE
Программа, особенно каждая, ни у кого не занимала и (поэтому) ничего не должна. Такая ошибка, как приведённая в качестве доказательства, не возникает на практике поскольку IDE автодополняет, а линтер обнаруживает неиспользуемые значения. Если они у кого этого не делают... ответ на стоит ли смотреть почти очевиден.
И ещё замечание - конкуренты Fortran не Go и Rust, и уж точно не Python да JavaScript, а Julia.
Так для этого придется книгу Бартенева переписать, припорошив интеловскими руководствами по языку.
В первом примере вывод числа ПИ слабоват в точности, особенно для науки - как так получилось? 3,1415926535...
Последний раз писал на фортране в 92м году, как сейчас помню – лаба по численным методам. Обычный старый добрый процедурный язык. Издали (и подзабыв детали) и не отличишь от прочих коболов, алголов и не к ночи будет помянуто бейсиков, которых были тыщи.
Это если не вдаваться в дебри, но мы ж и не вдаёмся в дебри.
Тема научности не раскрыта.
Все, что описано в статье про типы переменных существует в любом компилируемом языке - хоть в паскале, хоть в go.
На приведенных примерах любой современный язык будет не менее выразительным. Целочисленное деление в том же go тоже присутствует.
func variablesExample() {
var userAge int
var piApprox float64
var userName string
userAge = 30
piApprox = 3.14159
userName = "John Doe"
fmt.Printf("Имя: %s", strings.TrimSpace(userName))
fmt.Printf("Возраст: %d", userAge)
fmt.Printf("Пи: %v", piApprox)
}Странно в статье про современный Фортран не встретить упоминаний про его ключевые особенности, такие как векторизация, pure и elemental функции, in, out аргументы, allocatable и target объекты, (почти)нативную параллелизацию с помощью OpenMP.
Когда-то уже высказывал эту мысли в комментариях к какой-то статье о ФОРТРАНе здесь - если можно было бы измерить революционность языков программирования в каких-либо числовых единицах, то расстояние от программирования на Фортране до программирования в кодах (или на вариантах ассемблера для машин с разными системами команд) намного больше, чем расстояние от ФОРТРАНа до языков (или вообще способов программирования), которые появились после него, будь то ООП или наисовременнейшие парадигмы (тьфу, не люблю это слово) очень удобные языки. Я программировал на Фортране в середине 80-х (тогда это был FORTRAN-IV) и часто сталкивался со многими из недостатков, которые упомянуты в статье. Но было в ФОРТРАНе нечто, соврешившее революцию в программировании и позволившее на порядки увеличить продуктивность программистов, сделать программирование массовой профессией и создать библиотека программ для числовых алгоритмов, которыми пользуются и сейчас и которые пока не удалось переписать на что-то более современное. Поэтому он и жив, не являясь ни современным, ни слишком удобным
Ну расстояние от Фортрана-2026 до Фортрана IV вполне сопоставимо с расстоянием от первого Фортрана до макроассемблера, если не больше.
На самом деле такого уж невероятно огромного скачка в программировании между макроассемблером и Фортраном I, с моей точки зрения, не было. Разве что Фортран стал машиннонезависимым.
В статье нет ответа на вопрос, вынесенный в заголовок.
Автор знает ответ на него? Я да
Что больше всего вымораживало 35 лет назад, так это форматирование вывода.
… того, как рассказано, пусть кратко, главное …
Рассказываю. Установка нейронки - требует Intel Fortran.
Прям просится:
INTEGER :: user_age = 30
REAL :: pi_approx = 3.14159
CHARACTER(LEN=20) :: user_name = "John Doe"
Фортран отвратительно подходит для обучения. Я несколько лет писал на нём (Fortran 77, фиксированный формат) по работе, а потом узнал, что делаю это вообще неправильно. На нём внезапно надо писать скорей в духе R, чем в духе C.
77 и правда трудно воспринимать и учиться ему. 90й ещё куда ни шло, но с нуля учить на нём тоже так себе. По своим однокурсникам помню, у кого информатика в школе сводилась к офисным пакетам. У кого был хотя бы один класс обучения программированию на паскале, были в сильном выигрыше.
Рабочий инструмент без большого учебно-методического сопровождения.
Fortran в 2026 году: зачем смотреть на язык из 1957 года