@llghTevll read-only
Пользователь
19 ноября 2013 в 12:03

Разработка → О бедном Фортране замолвите слово из песочницы

Попробовать написать здесь свой первый пост меня подтолкнула статья о выборе первого языка программирования, где vt4a2h предлагает использовать для обучения C++. Да, на данную тему было сломано множество копий.

Я, как и наверное большинство школьников на просторах нашей необъятной Родины, начинал постигать азы через синий экран, но не смерти, а Turbo Pascal 7.0. Был конечно и Basic, с котором я впервые столкнулся в дошкольном возрасте на советском компьютере «Электроника». Тогда он казался странным текстовым редактором, ведь компьютер глазами ребенка создан для игр. Однако уже в институте я познакомился с языком Fortran, познав который, я до сих пор недоумеваю, почему он не используется для обучения.

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


Я считаю, что базис по основам программирования должен закладываться еще в школьные годы, хотя бы в старших классах. Даже если в жизни компьютер будет использоваться только для набора текста в Word'е или для общения в социальных сетях, минимальные знания о том, что такое алгоритм и как структурировать последовательность действий, чтобы получить нужный результат, по крайней мере не повредят молодому отроку во взрослой жизни, а скорей всего помогут сформировать особый склад ума.

Для того, чтобы уроки информатики были в радость, а не снились в кошмарных снах, обучаемый должен понимать, что он делает, как он это делает и почему получается так, а не иначе. Ведь по сути нужно правильно донести информацию о цикле и условном операторе, чтобы человек мог писать программы самостоятельно. При этом, чем проще синтаксис языка, тем легче понять логику написания кода. Если же человек научится составлять правильный алгоритм, то для программирования на других языках, ему понадобится только узнать синтаксис этого языка, а базис уже будет заложен.

Чем же так замечателен Фортран?


Обратимся к истории создания этого языка. Появился он в далекие 50-е годы прошлого века, когда компьютеры еще были большие, программистов было мало, а информатика не преподавалась в школе, да и вообще считалась лженаукой. Нужен был простой язык, который помогал бы инженерам и ученым «скармливать» ЭВМ формулы, написанные на бумаге, пусть даже через перфокарты.

Отсюда и название самого языка: Formula Translator или же «переводчик формул». Т.е. изначально язык был ориентирован на людей без специальной подготовки, а значит должен был быть максимально простым.

Что ж, простота создателям удалась. Классическая первая программа выглядит следующим образом:

program hw
write(*,*) 'Hello, World!'
end

Синтаксис даже чуть проще Паскаля, нет необходимости ставить в конце строки ";" или ":" перед знаком равенства. Более того, людям, обладающих минимальным знанием английского языка, понять смысл простейшей программы не составит труда.

Тут я хочу отметить, что Фортран имеет несколько ревизий стандартов, основными из которых являются 77 и 90 (при этом сохраняется преемственность). 77 Фортран действительно архаичен, есть ограничение на длину строки, и необходимо делать отступ в начале строки, что может вызвать у молодого кандидата в программисты культурный шок. Недаром программы, написанные на 77 Фортране, получили из уст моего знакомого емкое название «Брежневский код». Поэтому весь мой текст относится к стандарту языка 90 и новее.

Для примера, приведу код для вычисления суммы неотрицательных целых чисел от 1 до n, вводимого с клавиатуры, написанный моей дипломницей при обучении её программированию с нуля. Именно на ней я испытал преподавание Фортрана в качестве первого языка. Надеюсь, что для неё это пошло на пользу, а мой экперимент удался. По крайней мере основы она усвоила за пару занятий, первое из которых ушло на лекцию про язык.

program chisla

implicit none

! Variables

integer n,i,s

! Body of chisla

s=0		    
write (*,*) 'Введите n' 
read (*,*) n
if (n.le.0) then
     write (*,*) 'Отрицательное или ноль'
else
     do i=1,n
          s=s+i
     end do
     write (*,*) 'Сумма=', s
end if			
end 

Нетрудно заметить, что как мы думаем, так и записываем код. Никаких сложностей у обучаемого не может возникнуть в принципе. Внимательный читатель конечно же спросит, что за implicit none и две звездочки в скобках через запятую. implicit none говорит нам, что мы явно указываем тип переменных, тогда как без данной записи компилятор будет сам угадывать тип. Первая звездочка означает, что ввод и вывод происходят на экран, а вторая говорит о том, что формат ввода-вывода определяется автоматически. Собственно, программы на Фортране выглядит не сложнее, чем написанный выше кусок кода.

А что насчет программной среды?


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

Для написания программ на Фортране подойдет любой текстовый редактор. Если хочется подсветки синтаксиса, то можно использовать Notepad++ (поддерживает синтаксис только 77 стандарта) или SublimeText. Программу написали, чем будем компилировать? Тут все просто, можно использовать свободный GNU Fotran. Если использование планируется некоммерческое, то разрешается замахнуться и на компилятор от Intel, который хорошо оптимизирован под одноименные процессоры и поставляется с минимально необходимым IDE. Т.е. порог вхождения весьма льготный.

Лучшей средой разработки под Фортран по мнению многих пользователей остается Compaq Visual Fortran 6.6, последняя версия которого увидела свет в начале 2000-х. Почему же так сложилось, что среда, основанная на Visual Studio 6.0, которая без танцев с бубном заводится максимум на Windows XP 32 bit, и имеет ограничение на используемую память, снискала такую популярность среди фортранщиков. Ответ приведен на рисунке ниже.



Это Compaq Array Visualizer, который представляет собой очень удобный инструмент по визуализации 1, 2 и 3-х мерных массивов в процессе отладки программы непосредственно из дебаггера. Как говорится, попробовав раз, ем и сейчас. Дело в том, что Фортран сейчас используется в основном в науке (о чем будет сказано позже), в частности в той области, с которой я имею дело, а именно в физике атмосферы. При отладке программ массивы представляют собой различные метеорологические поля, такие как температура, давление, скорость ветра. Искать ошибку в графических полях гораздо проще, чем в наборе цифр, тем более, обычно известно, как примерно должно выглядеть поле, поэтому очевидные ошибки отсекаются моментально.

К сожалению, все наработки по компилятору перешли от Compaq к Intel. Intel первоначально поддерживала Array Visualizer, правда, уже те версии были бледным отражением продукта от Compaq, работать с ними было не так удобно, как прежде, но хотя бы минимальная работоспособность поддерживалась. Увы, Intel перестала разрабатывать новые версии Array Visualizer'а, поставив крест на этом удобнейшем инструменте. Именно поэтому фортрановское сообщество в основной своей массе пишет программы и занимается их отладкой под Compaq Visual Fortran на Windows, а боевые расчеты запускает на серверах под Linux, используя Intel-овские компиляторы. Интел, пожалуйста, услышь мольбы пользователей, верни нормальный инструмент для визуализации массивов в свой дебаггер!

Место Фортрана в современном мире



А сейчас мы подошли к той самой теме, которая обычно вызывает бурную дискуссию с моими коллегами, использующими Matlab, которые утверждают, что описанный в данном посте раритетный язык ни на что не годится. Тут я с ними не соглашусь. Дело в том, что Фортран исторически использовался в инженерных или научных расчетах, а потому со временем обрастал множеством готовых библиотек и кодами программ решения той или иной задачи.

Код в буквальном смысле передается из поколения в поколение, да еще и хорошо документируется. Можно найти множество готовых решений уравнений математической физики, линейной алгебры (здесь следует отметить удачную реализацию работы с матрицами), интегральных и дифференциальных уравнений и многого-многого другого. Наверное тяжело найти задачу из области физмат наук, для которой не был бы реализован алгоритм на языке Фортран. А если учесть отличную оптимизацию интеловских компиляторов под интеловские же процессоры, поддержку параллельных вычислений на высокопроизводительных кластерах, то становится понятно почему в научной среде этот язык занимает заслуженное первое место. Думаю, на любом суперкомпьютере можно найти установленный фортрановский компилятор.

Большинство серьезных моделей, по крайней мере из области физики атмосферы, написаны именно на Фортране. Да-да, прогноз погоды, которым каждый интересуется время от времени, получается в ходе расчетов моделей, написанных на этом языке. Более того, язык не находится в стагнации, а постоянно совершенствуется. Так, после описанных раннее стандартов 77 и 90, появились новые редакции 95, 2003, 2008, поддержка которых внедрена в актуальные компиляторы. Последние версии Фортрана несколько освежили старый проверенный временем язык, превнеся поддержку современного стиля, добавив объектно-ориентированное программирование, отсутствие которого было чуть ли не самым главным козырем противников этого языка. Более того, The Portland Group выпустила PGI CUDA Fortran Compiler, позволяющий проводить высокопараллельные расчеты на видеокартах. Таким образом, пациент более чем жив, а значит программисты на Фортран остаются востребованными до сих пор.

Вместо послесловия


А теперь я хотел бы вернуться к изначально затронутой теме об обучении программированию, и попытаться тезисно сформулировать основные плюсы Фортрана при выборе его в качестве первого языка.

  • Фортран очень прост в обучении, синтаксис понятен неподготовленному человеку. Познав основы, легко переучиться на любой другой язык.
  • Бесплатный набор средств позволяет не получать лишних вопросов от правообладателей.
  • Язык знаком преподавателям, так как существует давно, а учителя у нас в основном представители старшего поколения.
  • Широко распространен по всему миру и является кладезем всевозможных библиотек.
  • Стандартизирован, кроссплатформеннен и совместим с более ранее ревизиями.
  • Полезен для студентов технических, а особенно физмат специальностей, ввиду ориетации на научные и инженерные вычисления.
  • Актуален и востребован и по сей день.

Так почему же не Фортран?
@llghTevll
карма
7,0
рейтинг 0,0
Реклама помогает поддерживать и развивать наши сервисы

Подробнее
Спецпроект

Самое читаемое Разработка

Комментарии (56)

  • 0
    Так я не понял, чем это будет лучше, чем Паскаль? Сейчас и Паскаль то во многих вузах и школах заменяют на другие языки, а вы предлагаете использовать еще более мертвый, чем Паскаль, язык.
    • +2
      Так как раз в своем посте я и пытался донести, что язык вовсе не мертв, а очень и очень востребован в научной среде. Паскаль же практически не используется. А Делфи — это уже другая история.
      • +4
        под Паскалем я имел в виду и сам Паскаль и Дельфи. Даже когда я учился в школе, мы изучали и то, и другое. Теперь, я думаю, тем более не Паскалем единым…

        Возможно, Фортран и востребован в некоторых областях. Но если бы у меня был ребенок, я бы не хотел, чтобы он изучал программирование на языке, который востребован лишь в узких областях, типа физики атмосферы.
        • +3
          Если бы у меня был ребенок, я бы хотел, чтобы обучение для него было в радость, и всё было понятно. Чтобы он мог представить алгоритм и вбить код на компьютере, прилагая минимальное количество усилий. Ведь в программирование главное затянуть. Если с самого начала обучаемый сталкивается с чем-то непонятным, то возможно желание разбираться дальше и не возникнет, да все закончится на первом занятии. Я не говорю, что Фортран — панацея, давайте все перейдем на него. Я говорю, что это один из вариантов затянуть в удивительный мир программирования :)
          • –1
            Но ведь с этой задачей прекрасно справляется Pascal/Delphi.
            Которые, похоже, как ни крути, но со сцены сходят не так быстро, как кажется: habrahabr.ru/post/201548/

            К сожалению, в этом опросе не участвовал Fortran, но подозреваю, что его место было бы где-то около Basica или Prologa.

            Я понимаю, что вам он нравится, вы с ним работаете. Но с точки зрения его перспективности для обучения… Нет, это далеко не лучший вариант.
            • +3
              Я работаю не только с Фортраном, более того, впервые я с ним серьезно начал взаимодействовать только после института. И как раз только после знакомства с ним, я осознал, что вся прелесть его в простоте, хотя до этого также скептически относился. Впрочем переубедить трудно, если самостоятельно не попробовать.
              • +6
                Да я не спорю, что он легкий. Но я так и не увидел его плюсов относительно Паскаля и Дельфей. Причем как верно ниже заметили, порой Паскаль даже легче или уж точно не сложнее.
                По крайней мере мне, если я был бы незнаком с программированием, вполне себе было бы понятно, что такое
                println("Hello world");


                Но не очень понятно, что такое
                write (*,*) 'Hello world'

                Зачем эти звездочки и скобки?
                Понятно, что это ерунда и разобраться — дело минуты. Но вот уже пример того, что Фортран в данном случае не легче Паскаля. А если дальше копать, то может и еще что вскроется.
                • +5
                  Это не звёздочки и скобки, это сова. Что вы имеете против сов?
                  • 0
                    image
                • 0
                  А как бы вы, например, перемножили матрицы в Паскале?
                  В Фортране, например, если мне не изменяет память, для этого есть отдельный оператор.
                  • 0
                    это здорово. Но какое это имеет отношение к обучению азам программирования? Повторюсь, для своих целей Фортран — наверняка хорош, не спорю.
        • +1
          Я бы не сказал, что он востребован в узкой области. Область как раз таки очень себе даже ничего — научные и инженерные расчеты, симуляции, численные вычисления.

          А физика атмосферы вам была приведена как популяризующий пример.
          • 0
            Насчет области, в которой востребован Фортран, далее по тексту есть замечательный пример с hh.ru
            Этот пример, возможно, справедлив только для России. Но мы о ней вроде как и говорим.
      • 0
        Научная среда — это очень-очень узкая ниша. На hh.ru по запросу Fortran — 8 вакансий, С++ — 700, c# — 550.

        Так что слухи о популярности Fortran явно преувеличенны.
        • +2
          8 вакансий даже много. Сравните количество людей, пишущих на Fotran и на C.
          Тем более в нашей стране наука сейчас не в выигрышном положении по финансам, это уж тогда в США смотреть надо.
          • 0
            Меня в США в научной среде застравили выучить Фортран прежде С.
  • +4
    Все, что я хочу сказать по поводу Фортрана:
    GO TO (320,330,340,350,360), K
    Ну и не ясно, почему тогда не C с теми же самыми плюсами (невольный каламбур), что и Фортран, только еще более распространенный, с не меньшим количеством библиотек и значительно более востребованный.
    • +3
      GO TO — это все-таки 77 стандарт, я же не предлагаю его использовать. А 90 стандарт вполне себе ничего.
      Насчет С. Всё-таки начинающим не столь ясен синтаксис языка, как в случае с Фортраном. Сталкиваешься с непониманием.
  • +6
    Синтаксис даже чуть проще Паскаля, нет необходимости ставить в конце строки ";" или ":" перед знаком равенства.

    К слову, в паскале тоже нет надобности ставить ":" перед знаком равенства, ибо ":=" — это знак присваивания. Равенство и присваивание различны по начертанию в большинстве языков совсем не для того, чтобы усложнить жизнь учащегося.
    А тем, кому кажется, что было бы проще обслуживать знаком "=" и присваивание, и сравнение на равенство, так это только кажется…
  • +8
    Синтаксис даже чуть проще Паскаля


    Ну как-то не очень все-таки. Взять хотя бы ваш пример:

    n.le.0
    vs
    n < 0


    write (*,*) 'Отрицательное'
    vs
    println('Отрицательное')

    • +1
      Оба варианта записи неравества допустимы.
      А для вывода можно использовать print *, 'Hello, World!'
      • +1
        Я верно понимаю, что less/equivalent нуля вы называете отрицательным числом?
        Или вы имели в виду n.lt.0?

        Кроме того, синтаксис PRINT * разве не легче, чем WRITE (*, *)?
        • 0
          Конечно lt, моя ошибка.
          Согласен, print может и легче, но write дает больше возможностей, через него в файлы можно писать.
  • +10
    write(*,*) 'Hello, World!'

    Синтаксис даже чуть проще Паскаля
    • 0
      Про звездочки, кстати, в тексте написано.
      • 0
        А я думал, что в Фортране есть более интересные фишки, чем упрощенная запись в файл, например, гибкая индексация массивов. У Вас же в статье два элементарных примера кода и никакого обзора самого языка.
        • 0
          Код приведен просто для иллюстрации синтаксиса.
  • +4
    На многих суперкомпьютерах (на этом точно, номер восемь в top 500, и еще на двух поменьше, о которых я знаю) есть компиляторы только для C, C++, Fortran. Для всего остального нет. Так что пациент более чем жив, судя по всему--но в областях, отстоящих от бизнес-приложений, игр и сайтов.
  • 0
  • –4
    по моему для начинающих в Fortran один большой минус — это консольный язык, сделать красивое приложение на нем можно, да и то в основном в Win версии
    А так Fortran был и остаётся любимым языком…

    В копилку свободных компиляторов можно добавить OpenWatcom Fortran
  • 0
    Когда пытался использовать gfortran для своих программ (небольших и учебных), меня просто убивала неинформативность выдаваемых компилятором ошибок. Или, как вариант, программа могла откомпилироваться и выдать «segmentation fault» сразу после старта без объяснения причин. Из отладчиков я пробовал только gdb, но весь процесс отладки оставил впечатление чего-то очень долгого и болезненного. Есть ли более удобные инструменты для поиска ошибок и отладки?

    P.S. Будьте внимательны, программа на f77 не откомпилируется, если не сделать семь отступов в начале каждой строчки.
    • 0
      Если под Linux, то можно попробовать еще Интеловский дебагер
  • 0
    Статья интересна с общеобразовательной точки зрения. Но:

    Беда нашей системы образования в том, что она плодит теоретиков — людей, который впоследствии только и могут, что преподавать в тех же ВУЗах, где они учились. Зачем учить студентов Фортрану? Пусть рисуют блок-схемы. Еще нагляднее, еще понятнее.

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

    Вообщем (с) «Какое низкое коварство. Полуживого забавлять»
    • +1
      Можно учить и питону, если найдутся преподаватели в ВУЗах, которые его знают.
    • 0
      Судя по онлайновым курсам на edx, coursera в штатах учат именно на питоне.

      Ну, кроме всякой специфики типа opengl, которое на c++, или вороченья матриц, которое на matlab.
  • +5
    Нетрудно заметить, что как мы думаем, так и записываем код

    Обратное верно. Программированию стоит учиться, чтобы научиться думать больше и лучше.

    Например, лисп, пролог, смолтолк и D несут в себе заряды идей, которые меняют во многом сам образ мышления. Пролог ломает голову декларативностью, лисп — макросами, смолтолк — объектами и интерфейсами, D — статическим метапрограммированием. Поломанная голова срастается и становится крепче, чем была когда-либо до этого. Суть такого обучения понятна и очевидна.

    Фортран же, равно как и питон и даже С++ — языки практические и потому неинтересные. Они во многом впитывают чужие идеи, подстраивая их под свой синтаксис и свою инфраструктуру. Плюсы, например, имеют и объекты, и метапрограммирование, и функции как объекты первого рода, но все это намного больше похоже на эмуляцию, чем реализацию. Как говорил Алан Кей: «Я придумал термин „объектно-ориентированный“, и я уверяю вас, что не имел в виду C++».

    Поэтому может Фортран и годится в качестве первого языка, но разве что первого. С дидактической точки зрения он не так уж ценен.
  • +2
    Относительно простоты синтаксиса — даже из приведенных примеров очевидно, что не такой уж синтаксис и простой у Фортрана. Интуитивность здвесь видят только те, кто уже знает Фортран. Для сравнения, аналогичная (неэффективная) программа для тех же вычислений на Матлабе:
    n = input('Enter n:');
    if n<0
        error('Negative');
    end
    s = sum(0:n);
    fprintf('Sum=%d\n',s);
    
    
    Заметьте: никаких объявлений, никаких непонятных знаков препинания, разве что в команде fprintf.

    Для «честности игры» можно сумму вычислить и в виде цикла, тогда получится:

    s = 0;
    for i=1:n
        s = s+i;
    end
    


    При этом я не спорю с тем, что Фортран занимает важное место в научных вычислениях. Связано это в первую очередь с богатым наследием прошлого. Также в пользу Фортрана в этой области тот факт, что в нем изначально была реализована работа с комплексными числами, которые так часто появляются при научных вычислениях. До появления перегрузки операторов в языках типа C++ реализация работы с комплексными числами приводила к большим трудностям понимания кода с комплексной арифметикой. Еще можно отметить компилируемость. Пусть Матлаб синтаксически мощнее Фортрана, пусть в нем векторные и матричные вычисления лаконично записываются в одну строку, но скорость у Матлаба очень страдает. В десятки и сотни раз медленнее, чем если писать на Си, за исключением алгоритмов, основное время работы которых тратится в компилированных библиотечных функциях наподобие fft.
    • 0
      Вы как матлаб на кластере запустить собираетесь?
      • 0
        Есть же Parallel Computing Toolbox. Но даже и до того, как она появилась, были средства. Я лично не запускал кластер на матлабе, но сотрудники этим занимались, когда им нужно было. Использовали под Линуксом какое-то бесплатное кластерное ПО. Естественно, потребуется много лицензий. Матлаб дорог — это еще один его недостаток по сравнению с Фортраном.
  • 0
    Вопрос не в том жив ли он сейчас, а в том что будет через несколько лет?
    • +1
      Да ничего не изменится. Модели, написанные на фортране никто переписывать не будет.
      • +1
        все переписывают рано или поздно
  • +1
    Не надо фортрана начинающим, пожалуйста. У нас в универе были лабы на нем, с обязательным использованием именно 77 стандарта и open watcom. Более неудобной IDE и языка я в жизни не видел. Чего стоит один только форматированный вывод. А на вопрос, чем все-таки фортран лучше тех же C/C++, препод так и не дал внятного ответа, не считая того, что «на нем написано много всего и это один из самых старых языков».
  • 0
    Мы в институте полгода учили Фортран 77 :)
    Так что дело его живо и процветает.
  • 0
    Я же специально написал, что речь идет о Фортране 90, а никак не 77, о котором ходят только страшилки.
    Своим постом я никак не хотел задеть чувства верующих приверженцев того или иного языка программирования, а обратить внимание на незаслуженно списанный на пенсию Fotran.
    Я не призываю обязательно изучать его, а рассматривать, как альтернативу традиционному Паскалю/Бейсику/…
    Честно говоря, перед публикацией я опасался, что вернусь в рид-онли, затронув такую холиварную тему, а тем более, влезая с «дедовским» языком. Я рад, что мне удалось хоть чуть-чуть поучаствовать в популяризации Фортрана. Если хотя бы пару человек захотят посмотреть, как это работает, или расскажет друзьям — уже хорошо.
    Ведь до прямого контакта с Фортраном я тоже опирался на мифы и легенды древней Греции слухи. Теперь познакомившись чуть ближе, готов рекомендовать его. Не так он страшен, как о нем говорят.
  • +1
    Прочитал статью. Но так и не понял, чем он лучше. Паскаль по английски читается лучше (implicit none — неявный отсутствует, лолшто), смысл le может понять далеко не каждый программист, не говоря уже о школьнике, которого впервые обучают программированию. А смысла звездочек без пояснения никогда бы не понял.
    • 0
      le = low or equal. сейчас так не пишут уже, просто пишут <=
      смысл звездочек запомнить куда легче, чем форматные ключи в printf() ))
      • 0
        Вы читали мой комментарий? le я знаю, потому что сталкивался ранее. У школьников тут будут проблемы.
        Про printf я вообще ничего не говорил. Или вы уже с ассемблером сравниваете?
        • 0
          Нет, я с С сравниваю разумеется. В фортране всего 2 функции вывода write и print, которые в общем-то идентичны по функционалу. И их легко запомнить. Ну хотя бы одну из них )
          У школьников не будет проблем, если они на Фортране будут писать <=, <, > вместо буковок непонятных )
          • 0
            А я кажется с паскалем сравнивал. Write и Read в паскале.
            Автор утверждает, что фортран лучше для обучения чем паскаль. А получается, что нет ни одного пункта (точнее не было озвучено), по которому фортран превосходит паскаль.
            • 0
              Есть на самом деле. Навскидку: работа с массивами и адаптированные mpi/openmp для высокопроизводительных вычислений на кластерах. Но это вряд ли будет сильно нужно человеку, который только учится программировать
              • +1
                ААААААА БОЖЕ МОЙ. ДЛЯ ОБУЧЕНИЯ ПРОГРАММИРОВАНИЮ НИЧЕГО НЕ ПОНИМАЮЩИХ ДЕТЕЙ. ААААААААААА
                Простите, вырвалось.
  • +1
    В защиту старичка родом из 50-х можно сказать, что одно из крупнейших открытий человечества за последние годы (а именно открытие в 2012-м году новой фундаментальной частицы — бозона Хиггса), было сделано при непосредственном участии многих тысяч строк фортрановского кода: Фортран используется для Монте-Карло генерации событий, для моделирования различных их свойств. Которые затем уже проверяются экспериментально. C++-ные варианты генераторов событий, конечно, наращивают присутствие в физике элементарных частиц, но пока даже не догнали фортрановские по частоте использования.
    • 0
      Извините, но вроде бы библиотеку CERNLIB (Fortran 77) с 2003 года заменили на ROOT (C++). На хабре есть статьи с разбором кода библиотеки Geant4 из ЦЕРНа. Возможно, вы имели в виду какую-то другую библиотеку (LAPACK или ещё что-то)?
  • +3
    Фортран — это обыкновенный структурный язык, поэтому как и всякий подобный язык (С например) он хорош только до определенной сложности программ. В последнее время его используют всё реже, даже привыкшие к нему матерые физматовцы, из-за того, что сложность программ резко выросла, а также из-за того, что поддержка новых аппаратных устройств, таких как GPU, Intel Phi на С сделана лучше: CUDA Fortran по сравнению с CUDA C — продукт вторичный и глючный, а OpenCL и Cilk Plus для фортрана не существуют. Попытки в сложных программах использовать квази ООП-шные фичи фортрана рождают преимущественно страшных неподдерживаемых уродцев.
    Конечно, Фортран хорош тем, что он простой, как валенок. В общем-то студенты его осваивают за пару недель, и даже пишут на нем программы, которые затем включаются в эти мифические «библиотеки долгой поддержки». Проблем в том, что качество программ в таких библиотеках ровно такое, какое могут предоставить студенты, изучившие программирование за пару недель. И эти библиотеки все равно приходится переписывать при переходе на новые аппаратные платформы. Сам я на фортране программирую уже лет 15 и повидал на нём всё, что только можно.
    Фортран для изучения в качестве первого языка не лучше и не хуже того же Паскаля. А вот его «востребованность» я бы поставил по сильное сомнение.
  • +1
    Не могу молчать!

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

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