«Fortran жив». Почему язык всё ещё важен, хотя давно вышел из моды

«Fortran жив». Почему язык всё ещё важен, хотя давно вышел из моды

Fortran не особо жалуют в сообществе программистов. Многие считают его громоздким и устаревшим, а программирование на нём сравнивают с поездкой на работу в экипаже, запряжённом лошадьми. Ресурс Words and Buttons рассмотрел, насколько правдивы мифы об этом языке программирования. Dev.by публикует перевод статьи.

В рамках одного из конкурсов по оптимизации кода, который инициировало NASA, требовалось выполнить задачу на языке Fortran. Многие считали, что проект даже не смогут запустить из-за отсутствия участников. Проект действительно не запустили, только по прямо противоположной причине: кандидатов оказалось настолько много, что агентство просто не уложилось бы в срок.

Но Fortran не настолько сложен и не потерял свою актуальность. Эти заблуждения породил как раз тот факт, что он отлично справляется с тем, для чего предназначался: сделать обработку больших объёмов числовых данных простой и эффективной. Fortran используют учёные и инженеры (не-программисты), и для них работающее решение задачи важнее красивого кода.

Именно это породило миф о сложности языка. И в основном код на Fortran действительно сложен. Но только потому, что:

  • задача, которую он решает, сложна;
  • код пишут не программисты, а специалисты в какой-либо предметной области.

Fortran достаточно прост, чтобы узкие специалисты могли писать на нём плохой код, который даёт хорошие результаты.

Что касается «старомодности», текущий стандарт языка — Fortran 2008, а следующим будет Fortran 2018, выход которого ожидается в ближайшее время. Язык понемногу, но постоянно обновляется. Главным сдерживающим фактором является его миссия: оставаться доступным для классических инженеров.

Однако сегодня в Fortran уже есть модули, объекты, дженерики и встроенная поддержка параллельных вычислений. Его возможности стабильно расширяются под давлением современного мира.

Fortran по-прежнему не имеет равных в структурном программировании, но при этом имеет функции, которых нет в мейнстримовых С-подобных языках, например прерывание или продолжение цикла из вложенного цикла.

rows: do i = 1, 10
  columns: do j = 1, 10
    if (a(i, j) == 0.) exit rows
    ...
  enddo columns
enddo rows
    

В нём есть оператор case с диапазонами.

integer :: temp_c

! Temperature in Celsius!
select case (temp_c)
case (:-1)
  write (*,*) 'Below freezing'
case (0)
  write (*,*) 'Freezing point'
case (1:20)
  write (*,*) 'It is cool'
case (21:33)
  write (*,*) 'It is warm'
case (34:)
 write (*,*) 'This is Texas!'
end select
    

В нём можно использовать массив указателей для доступа к другому массиву.

real, dimension(5) :: a = [ 2, 4, 6, 8, 10 ]
integer, dimension(2) :: i = [ 2, 4 ]

print *, a(i)   ! prints 4. 8.
    

Здесь можно найти краткое введение в современный Fortran.

Вопрос в том, почему сегодня язык «ушёл в подполье». По мнению Words and Buttons, с ним произошло то же, что происходит со «старыми» программистами. Большинство из них остаётся в профессии, но численно они уступают молодому поколению, растворяясь в общей массе: количество разработчиков удваивается каждые пять лет. Однако это явление свойственно только сфере разработке ПО, а пользователи Fortran — преимущественно инженеры, и их численность не растёт в геометрической прогрессии. Это значит, что аудитория Fortran (предыдущие поколения и молодые инженеры) остаётся примерно на том же уровне, что и 30-40 лет назад, когда Fortran был в самом расцвете сил.

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

Хотите сообщить важную новость? Пишите в Телеграм-бот.

А также подписывайтесь на наш Телеграм-канал.

Горячие события

HRgile.club 2021 Online
23 апреля

HRgile.club 2021 Online

Минск

Читайте также

Google представила язык логического программирования Logica
Google представила язык логического программирования Logica
Google представила язык логического программирования Logica
TIOBE: один древний язык резко ворвался в топ-20, Objective-C — вылетел
TIOBE: один древний язык резко ворвался в топ-20, Objective-C — вылетел
TIOBE: один древний язык резко ворвался в топ-20, Objective-C — вылетел
9 популярных языков программирования с высокими зарплатами
9 популярных языков программирования с высокими зарплатами
9 популярных языков программирования с высокими зарплатами
Хакеры взломали Git-репозиторий PHP для внедрения бэкдора в исходный код
Хакеры взломали Git-репозиторий PHP для внедрения бэкдора в исходный код
Хакеры взломали Git-репозиторий PHP для внедрения бэкдора в исходный код
Спасибо! 

Получать рассылки dev.by про белорусское ИТ

Что-то пошло не так. Попробуйте позже