• 特集
  • 番組
  • トピックス
  • 学び
プレミアムを無料で体験

「Fortran」の人気が再燃?--専門家が考える現状と展望

155
Picks
このまま本文を読む
本文を読む

コメント


のアイコン

選択しているユーザー

  • badge
    東京大学 大学院工学系研究科 航空宇宙工学専攻 教授

    FORTRAN(あるいはFortran、大文字と小文字の使い分け重要)万歳!!小学生でBASICを始めて、大学で始めて学んだ高級言語がFORTRAN77でした。1行に字数制限はあるし、大文字で書かないといけない。何だこれはと思いました。しかし、当時は数値計算と言えばFORTRANで研究を始めて、最適化計算など多くのプログラムを作りました。90年代半ばまではFORTRANで、その後、C++、Java、Pythonにも移行し、研究室を待つようになってからは学生はもうFORTRANを使っていません。しかし、私の多くのプログラム遺産はFortran95です。
    何が良いかと言うと、数値計算ライブラリが充実し、特に配列処理が楽でCより書きやすい。Fortran95からはクラスやオブジェクト指向にも対応しています。PythonはBASIC並の平易さに驚いたが、インタプリタ言語なので遅い。Fortanはコンパイル言語で速い。今でもVisual CodeにFortranを入れている。なぜFortranはもっと使われないのだろうと疑問でした。


注目のコメント

  • AIIT Professor, Dr.Eng.

    皆さんの投稿を読んで2点コメントです。
    1番目、Pythonがスクリプト言語だから遅いということはありません。現代の実行速度は、CPUのアーキテクチャとライブラリを使いこなしているかが重要です。PythonパッケージのNumpyは、x64やIntel MKLを活用しているので、K&L流C言語よりずっと早く、例えば数百元の行列乗算は数十倍速い実行が得られます。詳細は次に書きました。
    https://www.ohmsha.co.jp/book/9784274225345/
    2番目、Fortran(2文字目からは小文字)が根強く残っている理由の一つに、ご存じのように豊富な数値計算ライブラリを有していることです。例えば、PythonのSciPyが提供する常微分方程式はFORTRAN(大文字に注意)時代のODEPACKを用いています。また、Fortranの特徴はオブジェクト指向というよりはむしろ、数値計算の誤差論が可能となるよう、有効桁数の指定ができることです。これは、膨大な数値ステップを要する数値計算で重要です。このため、地球シミュレータや宇宙空間飛翔体計算では重宝されています。さらに、材料系や機械系の摩擦計算で世界的に有名なソフトウェアAbaqusも数値計算などの理由から導入しています。


  • 東京大学情報学環教授 「妄想する頭思考する手」

    小学校4年生のときにFORTRANを独学していた暦本です(動かす実機がないので紙に書いていただけですが)。

    他言語からFortranのライブラリを呼び出したりもできるので、過去の資産があるとしても、新規にFortranで書く需要・実態がどれだけあるのだろう?というのが感想です。

    ちなみに80年代に「本物のプログラマはPascalを使わない」というエッセイが出たことがありました。当時の「今風」プログラミング言語の代表であったPascalに対して、本当のプログラマはそんな軟弱な言語は使わない、本当のプログラマは何でもFortranで書くのさというマッチョ論です。ということは80年代にすでにFortranは「古い」という評価だったわけです。このエッセイは結構本質をついているところもあるのでもし興味がありましたら:
    https://ja.wikipedia.org/wiki/%E6%9C%AC%E7%89%A9%E3%81%AE%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9E%E3%81%AFPascal%E3%82%92%E4%BD%BF%E3%82%8F%E3%81%AA%E3%81%84


  • WithMetis 代表取締役 理学博士(物理学)

    こちらの「量子化学および固体物理計算ソフトの一覧」をみていただけたらと思います。圧倒的にFortranが多いことがわかります。
    https://ja.wikipedia.org/wiki/%E9%87%8F%E5%AD%90%E5%8C%96%E5%AD%A6%E3%81%8A%E3%82%88%E3%81%B3%E5%9B%BA%E4%BD%93%E7%89%A9%E7%90%86%E8%A8%88%E7%AE%97%E3%82%BD%E3%83%95%E3%83%88%E3%81%AE%E4%B8%80%E8%A6%A7

    現状、(富岳や京、TSUBAMEなどに代表される)スパコンで並列計算を行う場合、Fortran, C, C++の3つしかありません。その中でFortranは、言語仕様が単純で、コンパイラの自動最適化が効きやすく高速なソフトウェアが比較的容易に得られます。(Cに比べると計算に関する部分はFortranの方がより簡素化されています。また、C++は機能が豊富ですが、速度を出そうとすると、Fortranよりはコツがいります。)

    また、Netlibなどのサイトに多くの計算ライブラリ(計算プログラムの部品)があり、Fortranで書かれているものが多いです。
    https://ja.wikipedia.org/wiki/Netlib

    HPC(ハイパフォーマンスコンピューティング)の分野では純粋情報系の研究者(計算機科学の研究者)はC++を使う傾向にありますが、計算物理、計算化学、計算工学(流体工学等)などの研究者(計算科学の研究者)には、Fortranは、根強い人気があります。前者は、主に実行効率などのところだけを考えがちなのに対し、後者は、現象の再現性などに目を配らなければいけないため、より容易なFortranを使用する頻度が高いものと思われます。

    ちなみに、パンチカードの仕様からくる、1行80文字の制限は、Fortran90以降からは無くなり、他の言語と同様、制限のない自由形式が可能となっています。

    また、Pythonは、ナイーヴに使うと50倍から100倍くらい遅いです。Numpyなどのライブラリ(計算の重い部分はFortranから変換されたCコード)を使うことや、Numba、Cythonなどを使うと速度を上げることが可能です。


アプリをダウンロード

NewsPicks について

SNSアカウント


関連サービス


法人・団体向けサービス


その他


© Uzabase, Inc

マイニュースに代わり
フォローを今後利用しますか