お役立ち情報

【Fortranのフリーランス求人・案件情報】開発言語の特徴やら学習方法、将来性

Fortranとは?

今日のソフトウェアの開発においては、人間が比較的わかりやすいプログラミング言語(高級言語)を用いて、それを機械語にコンパイルしてから、あるいはインタプリタを使って動作させることが主流になっています。

それ以前は機械語を直接、あるいはそれをわずかに人間にとってわかりやすいように置き換えたアセンブリ言語などの低級言語を用いて開発をしていました。

機械語・アセンブリ言語では人間にとっては非常にわかりづらいということもあって、人間にとって扱いやすいプログラミング言語が作られました。FORTRANは1956年に世界初の高級言語として登場しました。その後も改良が続けられており今日でも使われ続けています。

ここでは世界初のプログラミングであるFortranについて、解説していきましょう。

Fortranとは?その特徴は?

今回の記事における注意事項

今回の記事においては、「Fortran」と「FORTRAN」と大文字と小文字を組み合わせた表記と、大文字のみの表記が混在しております。

この表記の違いは歴史的な経緯から、1977年に提示された仕様である「FORTRAN 77」までは大文字のみの「FORTRAN」という表記を、1991に発表された「Fortran 90」以降は「Fortran」という表記をしております。

Fortranとは

FORTRANは「FORmula TRANslation」に由来したプログラミング言語で、1953年末に、メインフレームコンピューターIBM 704のプログラムの開発にあたり、アセンブリ言語に代わるものとして、ジョン・バッカスにより提案されました。その後、最初のマニュアルは1956年に作成、コンパイラーは1957年に開発されました。

当時のコンピューターは、今日と比較すると性能が大幅に劣ることもあり、アセンブリ言語で書かれたコードに匹敵するパフォーマンスを求められていたこともあり、最初から最適化がなされたコンパイラーが作成されました。

その後、IBM向けにFORTRAN、FORTRAN II、FORTRAN III、FORTRAN IVと続き、1966年にはAmerican Standards Association(現:ANSI)より、初めてのFORTRANの米国規格であるFORTRAN 66が登場、追って、1978年にはFORTAN 77が登場、FORTAN 77では構造化プログラミングをサポートするようになりました。

1991年にISO規格として、1992年にはFortran 90として知られる規格が登場し、FORTRAN 77までの厳しい制約の多くが緩和され、フォーマット面でモダンなプログラミング言語への変化を遂げました。

その後は1995年のFortran 95を経て、2003年にはオブジェクト指向プログラミングにも対応したFortran 2003が登場、現在ではFortran 2008が最新版となっていて、2018年にはFortran 2018の登場が予定されています。

Fortranのコーディングイメージ

Fortranの特徴

Fortranには以下のような特徴があります。

数値演算が得意

Fortranは、もともと科学技術計算用に作られたプログラミング言語ということもあり、数値演算に強い特徴があります。

数式の計算を簡潔に記述することが可能で、その特徴の多くは後発のプログラミング言語の多くに引き継がれています。

なお、この特徴は、もともとはアセンブリ言語においては数式を使って計算することができなかった(計算を行う場合はCPUの命令を駆使して行い必要があった)ことに対する非常に大きな進歩であると言われています。

非常に優れたパフォーマンス

元々が、1950年代のメインフレーム向けに作られたことで、アセンブリ言語に匹敵するパフォーマンスが求められていたという歴史的背景から、Fortranのコードは非常に優れたパフォーマンスを持っていると言われています。

今日ではコンピューターの性能向上が著しいこと、後発の言語の発展もあり、その優位性はかなり失われていった部分があります。

古いバージョンではコーディングフォーマットがかなり特殊

Fortranは高級言語としては最初のプログラミング言語ということもあり、少なくともFORTRAN 77までにおいては今日から見るとかなり特殊なコーディングフォーマットとなっています。

FORTRAN 77までにおいては、1行80カラムで、その80カラムでも位置によってその役割が固定されていました。さらに初期のバージョンでは変数名の長さの制約が厳しかったり、構造化プログラミングに対応していなかったという厳しい制約がありました。

この特徴は、Fortran 90以降では大幅に緩和され、モダンなプログラミング言語へとなっていきました。
Fortranプログラマー

Fortranのメリット・デメリット

Fortranのメリット

Fortranでは、その登場経緯から、数値演算に特化したプログラミング言語として知られている通り、数値演算においては非常に強いことが挙げられます。

数値計算を簡単に記述することができるということもあり、多くの後発のプログラミング言語ではこの特徴が引き継がれるほどでした。

数値演算用のライブラリー類では、主にFortran用、またはC言語用に開発されているものが多くあると言われています。

この演算に強いという特徴から、学術研究分野では今日でも使われているそうですが、それ以外の多くの分野では今日ではより使い勝手の良いプログラミング言語が登場・使われているということもあり、この特徴が活かしきれていない側面が多いようです。

Fortranのデメリット

Fortranでは、以下のようなデメリットがあります。

言語仕様が古いものも現役としてある

Fortranでは、その歴史の長さから、古い言語仕様のものが現役で稼働している場合も少なくありません。

今日においては、少なくともFortran 90以降が主流となっていますが、FORTRAN 77までのマシンも現役で稼働している場合があり、バージョンに応じたコードを組む必要があります。

Fortran 90以降では構造化プログラミングの完成度が問題ないレベルになっていますが、FORTRAN 77では`IF … THEN … ELSE“`はできても、ループにおいては`GOTO`文を使わなければ実装不可能、FORTRAN 66以前においてはそもそも構造化プログラミングができないという制約がありました。

したがって、使う場合は古い言語を覚えていかなければならない場合が多いです。

潰しが殆ど効かない

Fortranでは、主に学術研究分野で使われていて、それ以外においては使われる機会が非常に少ないということもあり、実務面では全くといっていいほど潰しの効かない言語であるといえます。

したがって、Fortranの遺産は決して少なくはないものの、Fortran案件に携わる場合を除き、多くのエンジニアにとってFortranをメインに選ぶのは適切であるとはいえないと考えられます。
Fortranが紡ぐ未来イメージ

Fortranはどの分野で使われているのか

Fortranは、主に科学技術計算の分野において使われています。

科学技術計算分野においては、初期のFORTRANの遺産が多数含まれていることもあり、その継承のためにFortranが使われている場合が多いそうです。

また、今日のFortranではかなり機能の追加が行われているとはいえ、通常の場合、数値演算に特化しているということもあり、後発のプログラミング言語と比較してシンプルであるという特徴もあってか、科学技術計算の分野で使われ続けていると言われています。

Fortranの学習方法

Fortranを始めるには

Fortranは、他のプログラミング言語と比較すると、学習する環境を整えるのはなかなか難しいです。

Fortranのプログラミングを学習するだけであれば、[paiza.io](https://paiza.io)にはなかったものの、[Online Fortran Compiler](https://www.jdoodle.com/execute-fortran-online)を使って学習することができます。

Fortranを学習するのであれば、入門書やウェブサイトなどを確認しながら、実際にコードを書いて実行してみるというのが一番の近道でしょう。

もし初めて学習するのであれば、[Fortran入門](http://www.nag-j.co.jp/fortran/)を参照してみると良いでしょう。

また、WindowsやUNIX系システム(macOSやGNU/Linuxシステム含む)で利用可能なコンパイラーがあります。

例えば、[GNU Fortran compiler (GFortran)](https://gcc.gnu.org/wiki/GFortran)が挙げられます。

FortranとCOBOL

Fortranはプログラミング言語の中でも長い歴史を持つ言語です。

それに次いで長い歴史を持つ言語として、COBOLが挙げられます。
Fortranにおいては科学技術計算分野で、共に他の言語で代替できない強い利点を持っている一方、COBOLにおいては、主に事務処理のシステムにおいて他の言語では実現できていない強みを持っているということもあって、今日までの長きにわたって、ニッチな分野になりながらも、使われ続けているという特徴を持っています。

Fortran・COBOL共に登場初期においては1行ごとの文字数制限ががあり、
なおかつカラムの位置によって役割が固定されている
オブジェクト指向どころか構造化プログラミングをサポートしていなかった
という特徴を持っています。

その後の仕様の更新で少しずつ近代的なプログラミング言語に進化していったという共通点を持っている一方で、COBOLでは事務計算に特化していて二進化十進数を用いた正確な数値計算に対応している一方で、Fortranではそれには対応しておらず、あくまで科学技術計算に特化しているという違いもあります。

なお、普及度の高さでは明らかにCOBOLの方が高かったこともあり、FortranはCOBOL以上にニッチであったと言えるでしょう。

Fortranの世界

Fortranの将来性

学校の授業や、科学技術計算分野などで必要な場合を除き、Fortranを使うという選択肢はないでしょう。

というのも、現時点でもFortranを扱う案件は非常に限られており、その将来性を享受できる機会はFortranを必要とするエンジニアに限られているからです。

一方で、Fortranを必要とする分野においては、その寿命の長さから今後もFortranが使われる可能性はありますが、今後の先行きへの不安はあります。

最後に

世界初の高級言語と言われているFortranは、主に科学技術分野において使われていました。当初は古くて製薬の厳しかった言語仕様も、改良を重ね続けられて、今日では主流のプログラミング言語に匹敵するほどの近代的なプログラミング言語へと発展していきました。

しかしながら、今日においては、その需要は科学技術分野というニッチな分野に限られており、その分野に携わっていて、Fortanを必要とするエンジニア、あるいは学校の講義などで用いるというのででない限り、習得するメリットがなかなか見出せないという現実があります。

科学技術計算の分野を除けば、多くの分野ではFortranが必要となる可能性はほとんどないということもあり、Fortranの習得は、どちらかというと、多くの場合、趣味あるいは教養の範疇になるものと考えられます。

キャリアカウンセリングのプロとして
あなたに合った案件をご案内します。

まずはお気軽にお問い合わせください!

イメージ