![]() | |||||
|
|
Статьи: Секрет долгожительстваСреди языков программирования Fortran, безусловно, занимает особое положение: этот старейший язык и по сей день сохраняет устойчивые позиции в своей рыночной нише и не собирается уступать их более молодым конкурентам. Секрет долгожительства Fortran, вроде бы, очевиден. С самого начала он был ориентирован на решение научно-технических задач математической обработки числовых данных (что отражено в самом названии языка: FORmula TRANslator — транслятор формул). А эта сфера деятельности отличается известным консерватизмом: здесь по большому счету основные вычислительные алгоритмы остались теми же, что пятьдесят и даже сто лет назад. Математические задачи в минимальной степени связаны с вводом/выводом данных, способами хранения информации и другими аспектами наиболее динамично меняющихся элементов архитектуры компьютеров. Но объяснение жизнестойкости Fortran только его "специализированностью" нельзя считать исчерпывающим. Ведь у Fortran всегда было немало достойных и, пожалуй, более прогрессивных конкурентов, например ALGOL и PL, о которых сейчас почти никто и не вспоминает. А Fortran, "примитивность" которого всегда считалась очевидной среди программистов, по-прежнему не сдает своих позиций. В чем же секрет его долгожительства? Дело в том, что он наиболее оптимально соответствует сфере применения, а также имеет ряд особенностей, основными из которых являются следующие: Межплатформенная совместимость. Сильной стороной языка всегда была высокая степень переносимости исходного кода между различными платформами (как существующими, так и будущими), обеспечивающая хорошую масштабируемость программ и их долговечность. В основе этой совместимости лежит достаточно жесткий стандарт, которого стараются придерживаться все разработчики компиляторов. Это особенно важно для математических программ, жизненный цикл которых значительно превышает время существования конкретных компьютерных платформ. Недаром один из главных рекламных тезисов фирм-разработчиков компиляторов звучит примерно так: "Вам не надо писать новые программы — просто возьмите написанный ранее код и откомпилируйте его". При этом следует отметить, что выработать удачный стандарт языка совсем не просто. В качестве примера можно привести C++, полный стандарт которого еще пару лет назад не был реализован ни в одном компиляторе. В этом плане Fortran всегда шел по другому пути: его стандарт был проще, чем у других языков, но легко реализовался на различных компьютерах. Еще одна особенность Fortran, объясняющая его консерватизм, — жесткое требование обратной совместимости, которое подразумевает поддержку, казалось бы, безнадежно устаревших языковых конструкций. Высокая эффективность исполняемого кода. Это всегда было важнейшим качеством для задач, требовавших максимального использования вычислительных мощностей. Fortran все время опережал своих конкурентов (причем довольно существенно) и по быстродействию программ, и по их компактности. В известной степени это объясняется многолетней отработкой алгоритмов компилятора. Но самое главное — использование более простых конструкций языка. Реализация динамически распределяемой памяти, сложных структур данных, контроль типов данных и пр., за отсутствие которых раньше ругали Fortran, требуют немалых дополнительных ресурсов программы. Недаром появление этих элементов в стандарте языка стало возможным только относительно недавно, когда рост мощности компьютеров в какой-то мере компенсировал относительные потери производительности. Огромный объем готовых математических наработок. Гордостью Fortran всегда была богатая коллекция самых разнообразных библиотек, и прежде всего математических. Реализованные, как правило, на самом Fortran, они кочевали с ним от одной компьютерной платформы к другой, шлифуя свои алгоритмы и расширяя состав функций. Исходные тексты подобных библиотек одновременно служат отличным подспорьем при изучении численных методов и алгоритмов, а также при разработке собственных. Одна из наиболее известных и популярных библиотек — IMSL фирмы Visual Numerics — включает свыше тысячи процедур математической и статистической обработки данных и фактически является стандартом на самых различных компьютерных платформах. Разумеется, наличие математических библиотек не является монополией Fortran. Например, продукты LAPACK (фирма Rogue Ware) и M++ (Dyad Software) для C++ также предлагают широкий спектр функций математической обработки данных. Но здесь перевес в пользу Fortran обеспечивается за счет уже упомянутой ранее более высокой скорости выполнения кода. Как язык программирования, Fortran, безусловно, всегда выглядел довольно примитивно на фоне богатых возможностей своих конкурентов. Но, возможно, именно это и способствовало его популярности: ведь значительный объем Fortran-приложений писался специалистами в предметных областях (условно скажем — математиками), которые были далеко не самими сильными программистами и для которых освоение, например C/C++, было не очень простой задачей. Но сила Fortran не только в его традициях. Несмотря на свой консерватизм, язык постоянно совершенствуется. Несколько лет назад был утвержден новый, третий по счету стандарт языка — Fortran 90. В нем появилось много новых элементов, благодаря которым он вышел на уровень современных требований к языкам программирования. Еще одна перспективная область применения Fortran-программ — использование их в клиент/серверных системах в качестве серверного компонента. Дело в том, что чистых Fortran-приложений сейчас практически не существует — уже давно большинство математических пакетов имеет двухуровневую схему: расчетный блок, написанный на Fortran, и модуль пользовательского интерфейса, реализованный на более приспособленном для этого языке (C/C++, Visual Basic и др.). В этой конструкции проглядываются зачатки достаточно простого перехода к сетевым клиент/серверным вариантам программных комплексов.
|
||||
![]() | Copyright © fortran-online.info, 2007 | ||||