Здорово! 🙂 У многих Fortran действительно был первым языком в университете — и он хорошо воспитывает аккуратность в коде. Интересно, что даже сейчас студенты, которые начинают с него, пишут заметно “чище”, чем после Python. Рад, что статья напомнила те времена!
Согласен, Haskell действительно ближе к математической нотации — особенно в выражениях высшего порядка вроде zipWith.
Но у Fortran немного другая философия: не “чистая” функция, а вычислительная модель, максимально близкая к линейной алгебре и аппаратной реализации.
C = matmul(A, B) читается инженерами не как функция, а как “операция над массивами”, и компилятор сразу видит возможность векторизации без лишних абстракций.
В итоге это баланс между математикой и производительностью — именно то, что делает Fortran удобным в научных вычислениях.
Очень точное наблюдение! Действительно, в инженерных задачах мышление “через компилятор” совсем иное — хочется, чтобы инструмент сам снимал часть рутины. Кстати, Fortran 2023 в этом направлении сделал шаг — do concurrent с reduce как раз снимает часть этой нагрузки. Я показываю это в своём курсе, и студентам всегда удивительно, что язык с 50-летней историей выглядит так современно.
Замечательная история! Спасибо, что поделились 🙂 Очень точно передаёт, как менялось само восприятие “языка программирования” — от чего-то почти физического к понятию абстрактному. Я часто вижу то же на занятиях: студентам нужно “ощутить” язык, прежде чем они начнут на нём мыслить.
Согласен, сегодня компиляторы действительно многое сгладили — особенно с появлением Rust и продвинутого C++. Но интересно, что Fortran всё равно остаётся в числе лидеров там, где критичны именно векторизация и большие массивы данных. Его строгая модель памяти и встроенные операции с матрицами до сих пор делают жизнь оптимизаторам проще 🙂
Согласен, это тоже важный аспект — Fortran даёт математическое мышление, не скрывая деталей. Кстати, я показываю учащимся, как Fortran и Python можно использовать вместе — тот же NumPy во многом на нём стоит.
Справедливое замечание — многие действительно “используют” Fortran, даже не зная об этом. Но мне как преподавателю интересно, что несмотря на возраст, язык жив именно благодаря тем, кто его не бросил. Современный Fortran 2018/2023 уже другой зверь: поддержка ООП, coarrays, полная совместимость с C. Думаю, его сила сегодня — не в “ностальгии”, а в том, что он даёт студентам хороший фундамент мышления в терминах производительности и типов данных.
🔧 Продолжение для тех, кому интересно углубиться в современный Fortran.
Я преподаю информатику и создал курс на Stepik, где подробно разбираю Fortran 2018–2023 с практическими примерами: параллельные вычисления (do concurrent, reduce), работа с массивами, оптимизация и взаимодействие с Python.
Сейчас также готовлю курс по Lua — как через игровые механики объяснять программирование.
В следующих публикациях на Хабре расскажу о педагогических приёмах, которые позволяют использовать разные языки для обучения алгоритмическому мышлению.
Спасибо всем, кто читает и делится мнением — ваши вопросы помогают делать курс и статьи лучше.
Здорово! 🙂 У многих Fortran действительно был первым языком в университете — и он хорошо воспитывает аккуратность в коде. Интересно, что даже сейчас студенты, которые начинают с него, пишут заметно “чище”, чем после Python. Рад, что статья напомнила те времена!
Согласен, Haskell действительно ближе к математической нотации — особенно в выражениях высшего порядка вроде
zipWith.Но у Fortran немного другая философия: не “чистая” функция, а вычислительная модель, максимально близкая к линейной алгебре и аппаратной реализации.
C = matmul(A, B)читается инженерами не как функция, а как “операция над массивами”, и компилятор сразу видит возможность векторизации без лишних абстракций.В итоге это баланс между математикой и производительностью — именно то, что делает Fortran удобным в научных вычислениях.
Очень точное наблюдение! Действительно, в инженерных задачах мышление “через компилятор” совсем иное — хочется, чтобы инструмент сам снимал часть рутины. Кстати, Fortran 2023 в этом направлении сделал шаг —
do concurrentсreduceкак раз снимает часть этой нагрузки. Я показываю это в своём курсе, и студентам всегда удивительно, что язык с 50-летней историей выглядит так современно.Замечательная история! Спасибо, что поделились 🙂 Очень точно передаёт, как менялось само восприятие “языка программирования” — от чего-то почти физического к понятию абстрактному. Я часто вижу то же на занятиях: студентам нужно “ощутить” язык, прежде чем они начнут на нём мыслить.
Согласен, сегодня компиляторы действительно многое сгладили — особенно с появлением Rust и продвинутого C++. Но интересно, что Fortran всё равно остаётся в числе лидеров там, где критичны именно векторизация и большие массивы данных. Его строгая модель памяти и встроенные операции с матрицами до сих пор делают жизнь оптимизаторам проще 🙂
Согласен, это тоже важный аспект — Fortran даёт математическое мышление, не скрывая деталей. Кстати, я показываю учащимся, как Fortran и Python можно использовать вместе — тот же NumPy во многом на нём стоит.
Справедливое замечание — многие действительно “используют” Fortran, даже не зная об этом. Но мне как преподавателю интересно, что несмотря на возраст, язык жив именно благодаря тем, кто его не бросил. Современный Fortran 2018/2023 уже другой зверь: поддержка ООП, coarrays, полная совместимость с C. Думаю, его сила сегодня — не в “ностальгии”, а в том, что он даёт студентам хороший фундамент мышления в терминах производительности и типов данных.
🔧 Продолжение для тех, кому интересно углубиться в современный Fortran.
Я преподаю информатику и создал курс на Stepik, где подробно разбираю Fortran 2018–2023 с практическими примерами: параллельные вычисления (
do concurrent,reduce), работа с массивами, оптимизация и взаимодействие с Python.👉 Курс на Stepik:
“Современный Fortran: от нуля до научных вычислений”Сейчас также готовлю курс по Lua — как через игровые механики объяснять программирование.
В следующих публикациях на Хабре расскажу о педагогических приёмах, которые позволяют использовать разные языки для обучения алгоритмическому мышлению.
Спасибо всем, кто читает и делится мнением — ваши вопросы помогают делать курс и статьи лучше.
Можно ли где-то прочитать вашу статью?