Support us

«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, который прекрасно работает и не нуждается в серьёзных изменениях.

16 лет dev.by — «дефолтный» источник информации о беларусском ИТ

Вы можете...

Читайте также
10 курсов по SQL для лучшего понимания работы с большими данными (май, 2023)
10 курсов по SQL для лучшего понимания работы с большими данными (май, 2023)
10 курсов по SQL для лучшего понимания работы с большими данными (май, 2023)
Собрали 10 платных и бесплатных онлайн-курсов для изучения SQL. Программы рассчитаны на слушателей, которые только начинают или продолжают знакомство с языком.
10 способов научиться программировать самостоятельно
10 способов научиться программировать самостоятельно
10 способов научиться программировать самостоятельно
Хотите научиться кодить и освоить алгоритмы? Собрали десять советов с чего начать изучение программирования для тех, кто только начинает своё путешествие в мир программирования и снабдили все это полезными ссылками на курсы для начинающих программистов.
Microsoft запустила обучающий сайт по Java
Microsoft запустила обучающий сайт по Java
Microsoft запустила обучающий сайт по Java
1 комментарий
Топ языков программирования по версии IEEE в 2022 году
Топ языков программирования по версии IEEE в 2022 году
Топ языков программирования по версии IEEE в 2022 году

Хотите сообщить важную новость? Пишите в Telegram-бот

Главные события и полезные ссылки в нашем Telegram-канале

Обсуждение
Комментируйте без ограничений

Релоцировались? Теперь вы можете комментировать без верификации аккаунта.

Комментариев пока нет.