Код
#статьи

Древнейший язык программирования восстал из мёртвых и хочет стать популярным

Язык программирования, придуманный ещё в пятидесятые, до сих пор живёт и здравствует. Разбираемся, кому и для чего нужен Fortran в 2k21.

Абрикос Абрикосовый для Skillbox Media

Вы не найдёте Fortran в топ-10 самых популярных языков программирования. Тем не менее он занимал 17-е место в индексе TIOBE в июне 2021 года, хотя годом ранее еле-еле добрался до 37-го.

Инфографика: Майя Мальгина / Skillbox Media

Программистское сообщество в шоке — на Quora даже появился большой топик под названием «Is Fortran Still Alive?» (кстати, у этого топика уже есть конкуренты — вот пример). В причинах резкого взлёта популярности Fortran пытаются разобраться опытные разработчики-полиглоты, учёные, ИТ-менеджеры и даже бывший член комитета по стандартам ISO / ANSI J3 Fortran Крейг Дедо. Мы выбрали самые важные комментарии и попытались понять, почему Fortran воскрес подобно фениксу. Получилось четыре причины — немного не дотянули до Игоря Николаева. Кстати, этот старичок стрельнул не один — сейчас на западе настоящий бум на COBOL-программистов.

Причина №1


Нет смысла переписывать программы, написанные на Fortran

Многие программные пакеты для прогнозирования погоды, мониторинга дорожного движения и так далее разработали ещё в 1980-х годах — и учёные до сих пор пользуются ими. А если что-то работает хорошо, зачем это ломать?

«Благодаря эффективности языка и его способности переиспользовать старый код многие поколения студентов-физиков до сих пор создают программы на Fortran на основе старых программ и фрагментов кода своих научных руководителей».

Тоан Фук Нгуен Три,
магистр ядерной и теоретической физики в Научном университете Хошимина

Переписывать на другой язык качественный и отполированный за десятки лет код — пустая трата денег, тем более когда у всех есть проблемы с настоящим техдолгом. Поэтому многие продолжают использовать Fortran в вычислениях — там он пока незаменим.

«Fortran всё ещё актуален в высокопроизводительных научных вычислениях — здесь он всегда сохранял лидерство. И я не вижу, чтобы ситуация как-то резко изменилась. Ценность вычислений на Fortran всё ещё очень высока. А Fortran-код чрезвычайно важен для человечества во многих сферах: прогноз погоды, создание новых лекарств, физика высоких энергий, геотермальное картографирование. В общем, всё, что называется „глобальными вызовами“. И Fortran здесь — замечательный инструмент. Хотя большинство людей из мира ИТ вряд ли захотят или должны будут его использовать».

Клем Коул,
хакер и разработчик

Причина №2


Fortran незаменим в естественных науках

Само название Fortran — сокращение от «Formula translation». Много лет этот язык использовали инженеры, и на нём написано множество лучших инженерных программ. Например, программы для решения задач с матрицами (matrix solvers) используются при конструировании самолётов, зданий, автомобилей и так далее.

К тому же у Fortran очень лаконичный и простой встроенный синтаксис для распределённого параллельного программирования.

«Fortran по-прежнему популярен в научных кругах. Особенно в суперкомпьютерном моделировании. Никакой другой язык не сравнится с его возможностями векторизации».

Ричард Кеннет Энг,
бывший руководитель проектной группы ATI Technologies

За 60 лет пользователи написали под Fortran множество программ, библиотек, алгоритмов и подпрограмм для любых вычислений. В арсенале «дедушки» — работа с комплексными числами, операции с матрицами и даже Coarray для параллельных вычислений.

Кадр: фильм «Трансформеры: Месть падших»

Вот примеры важных для научного сообщества программ на Fortran:

  • CHARMM — молекулярная динамика.
  • Code_Saturne — вычислительная гидродинамика.
  • NEMO — океанография.
  • QUANTUMESPRESSO — моделирование материалов.
  • SPECFEM3D — распространение сейсмических волн.
  • WRF — прогнозирование погоды.

«Поразительные объёмы кодовой базы на Fortran поддерживаются и совместно используются многочисленными группами исследователей».

Ян Кристиан Мейер,
доктор в сфере компьютерных наук

«В основном Fortran используют учёные — для численного моделирования. Отчасти это связано с традицией, отчасти с тем, что синтаксис языка позволяет сделать многие операции куда быстрее и проще, чем на других языках. Например, когда дело доходит до работы с массивами, матрицами или комплексными числами. Ещё одна причина — часть самых важных библиотек линейной алгебры (LAPACK, BLAS и ARPACK) изначально были написаны на Fortran и, кажется, лучше всего оптимизированы именно под него».

Симоне Стурниоло,
учёный

Причина №3


Fortran — самый быстрый язык программирования

Fortran даже быстрее Си — поэтому учёные выбирают его для самых скоростных и сложных вычислений.

«Fortran — единственный язык низкого уровня, который рассматривает массив как первый объект, его можно даже комбинировать с С, Python (а ещё с библиотекой gnuplot) и даже shell-скриптами. Лично я использую Fortran для решения сложных задач биологической физики и могу сказать, что вы ни разу не пожалеете, если предпочтёте его любому „современному языку программирования“ в любой естественно-научной дисциплине».

Виджай Кумар,
сотрудник проекта DST в Индийском институте науки

Правда, выигрыш в скорости будет ощутимым только при работе с суперкомпьютерами над сверхсложными вычислениями. И если вы не физик из Министерства энергетики США, у которого случайно есть доступ к суперкомпьютеру IBM BlueGene/Q, или не занимаетесь криптографией в Агентстве национальной безопасности на суперкомпьютере Cray, вы вряд ли почувствуете разницу между Си и Fortran или C++ и Fortran. Но если у вас на работе всё-таки есть суперкомпьютер и сложные задачи, то компилятор Fortran покажет вам чудо.

«Люди используют Fortran, когда Си недостаточно быстр, — обычно это происходит при обработке гигантских многомерных матриц. После 60 лет разработки компилятор Fortran обошёл всех в этой узкой нише».

Дерек Росс,
программист на Fortran с 1975 года

Причина 4


Fortran никогда не умирал — и даже развивался

Fortran и его стандарты всё ещё развиваются — у него куча релизов и стандартов, каждый из которых расширяет язык, но сохраняет совместимость с предыдущими версиями:

  • В Fortran 77 добавили ​​поддержку структурного программирования и обработки символьных данных.
  • В Fortran 90 добавили программирование массивов, модульное программирование и общее программирование.
  • Fortran 95 сделали высокопроизводительным.
  • В Fortran 2003 появилось объектно-ориентированное программирование.
  • В Fortran 2008 — параллельное программирование.
  • А когда ваш проект достигает уровня сложности, необходимого для работы на тысячах ядер суперкомпьютера, срочно скачивайте Fortran 2018 с расширенными функциями параллелизма.

«Сегодняшний Fortran — это не тот язык, который я учил в 1975 году, а мой отец — в конце 1950-х. Например, в первых версиях он был неструктурированным языком. А сегодня он уже структурирован и содержит конструкции, аналогичные Algol, — при этом вы всё так же легко можете скомпилировать версию F77 (или даже Fortran-IV). И это удивительно! Разработчикам языка удалось сделать современный язык и сохранить прошлое».

Клем Коул,
хакер и программист

Кадр: фильм «Терминатор 2: Судный день»

Кому пригодится Fortran

Fortran — отличный язык для разработки приложений, причём не только научных. Его функции позволяют разрабатывать программное обеспечение на более высоком уровне абстракции, чем в Си-подобных языках. А значит, разработчик может фокусироваться на создании приложения, а не погружаться в низкоуровневые вопросы и бороться с ограничениями языка. При этом скорость исполнения остаётся космической.

Поэтому Fortran до сих пор используют — даже в правительстве США. Например, в 2017 году NASA провело конкурс по улучшению своего кода на Fortran.

«Кажется, большая часть аэрокосмических компаний по-прежнему использует Fortran — но косвенно, через купленное когда-то ПО для анализа, написанное на этом языке. Насколько я понимаю, Fortran — основа службы прогноза погоды США. Очень сложные программы для расчёта климатических моделей написаны именно на Fortran».

Марк Шлокер,
разработчик

«Я знаю двух подрядчиков из оборонки, которые пишут новые проекты и поддерживают крупные существующие проекты на Fortran. Этот язык по-прежнему широко используется в суперкомпьютерах, математике, научном моделировании, высокопроизводительных библиотеках».

Кен Грегг,
программный инженер и менеджер

А вот если вам надо разработать ПО с прямой адресацией памяти или напрямую взаимодействовать с аппаратными устройствами, то Fortran не подойдёт.

«На Fortran можно писать программы с графическим интерфейсом (GUI), но это довольно неудобный процесс, потому что почти все библиотеки для разработки GUI написаны без учёта потребностей программистов на Fortran. Предполагалось, что программисты будут писать приложения на Си, C++, C # или чем-то подобном. Соглашения о вызове процедур в Fortran сильно отличаются от таковых в Си-подобных языках, поэтому приходится вносить много ручных корректировок, чтобы вызывать процедуры в GUI-библиотеках».

Крейг Дедо,
бывший член комитета по стандартам ISO / ANSI J3 Fortran

Как и для чего появился Fortran

Fortran разработали в IBM ещё в 1957 году — специально под компьютер IBM 704. Это был первый язык программирования высокого уровня, и он быстро завоевал популярность благодаря структурам управления и компонентам ввода. Поэтому другие производители тут же начали создавать компиляторы Fortran для своих компьютеров. К началу шестидесятых годов у Fortran были уже десятки компиляторов.

А ещё Fortran — первый язык со своим стандартом ANSI. Кстати, ANSI входит в ISO (International Organization for Standardization), который регулярно обновляет спецификации языка, — а значит, он и не собирается умирать.

Стандартизация сделала Fortran идеальным для сложных вычислений. И даже сегодня это самый популярный язык для вычислений — а вы думали, там правят бал эти ваши хипстерские питоны, ары и джулии?

Но если вы не седовласый как лунь учёный-академист, который уже пару тысяч лет программирует на Fortran и до сих пор носит в портфеле восьмидюймовые дискеты, рекомендуем изучить что-то более стильное, модное и молодёжное. Например, Java или Python. Подходящий курс можно выбрать в разделе «Программирование» Skillbox.


Нейросети для работы и творчества!
Хотите разобраться, как их использовать? Смотрите конференцию: четыре топ-эксперта, кейсы и практика. Онлайн, бесплатно. Кликните для подробностей.
Смотреть программу
Понравилась статья?
Да

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪

Ссылка скопирована