- ベストアンサー
C?FORTRAN?
大学でCとFORTRANの両方を習ったのですが(基本を)、どちらを社会では一般に使われるのでしょうか? ちなみに物理の研究室に所属していますが、みなさんFORTRANを使っています。 どちらがより社会に出たときに使う機会が多いか教えてください。 また、CとFORTRANでの違いや、お勧めの方を教えてください。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
現在FORTRANが使われているのは、科学技術計算などのHPC(High Performance Computing)のみといっても過言じゃないでしょう。 HPCなどでいまだにFORTRANが使われている理由は、FORTRANの方が、自動並列化などの自動最適化が行いやすいことなどがあげられると思います。C などでは、ポインタを使うし、JAVAだと例外あるし、C++だと両方あったりするし…自動並列化などを行うことが難しいです。そのため、俗にスーパコンピュータや、クラスタ、ベクトル演算器をつんだようなマシンでは、いまだにFORTRANが使われていたりします。 とは言うものの、本気で高速なプログラムを書く際には、結局コンパイラに頼らず、自分で並列化したりするわけなんですが。 FORTRANも、オブジェクト指向FORTRANとか、最近の言語の流れを汲んだものもあったりしますが、おそらく、そんなに使い勝手が良いものではないんじゃないかと思います。 というわけで、少なくとも一般的な用途では、FORTRANよりはCや、CよりはC++やJAVAなどの、再利用性が高い言語のほうが良く使われています(本当に再利用されるかは別として…)。 さらに言うと、最近では、HPCにおいても、JAVAとかが進出してきたりしています…使えるかどうかは別として…
その他の回答 (3)
- rot-N
- ベストアンサー率27% (118/432)
大学では、先達が作った数値解析ソフトを使い続けますので、Fortran中心です。もう20年近くまえからそうでした。 で、そういう「しがらみ」が無いと、使うのはCです。
- betagamma
- ベストアンサー率34% (195/558)
社会に出たら、圧倒的にCです。FORTRANを使うことはまずありません。 C,java,C++などがよく使われています。 理由は、プログラムを再利用するときの便利さが段違いだからです。 大学での少人数での研究と違い、実際のコンピューターのアプリケーションは非常に多くの人の共同開発になっています。そのときに、他人の作ったプログラムが再利用しやすくないと困るのです。変数名や関数名に色々な制限があるFORTRANは、多人数でソースコードを共有するのに適していません。 物理の研究室では、計算のためにFORTRANを使っていらっしゃるのでしょう。FORTRANは、簡単な、科学技術計算のプログラムを書くには、非常に楽な言語です。また、最初にできた高級言語なので、科学技術計算の分野に関してのプログラムの蓄積が非常に大きいということがあります。 そのまま、純粋な物理畑を行かれるのでしたら、何か製品を作ることよりも、研究者として正しい知識を用いて「科学技術計算をすること」が求められるでしょうから、FORTRANだけでいいかもしれません。 しかし、計算物理の世界に入ってスーパーコンピューターでシミュレーションする、などになりますと、正直FORTRANではコンピューターの性能を生かし切れませんので、C関連の言語を扱うことになるかと思います。 ただ、FORTRANの方がCより、言語規則がしっかり決まっていて、しかも内容も純粋に計算を行っているものが多いですから、自動的にCに書き直すプログラムは書きやすく、実際FORTRANを自動的にCに変換するプログラムが存在します。 むしろ、FORTRANを一回Cに変換して、C経由でコンパイルして実行する環境も存在します。 おすすめとしては、明らかにCです。
- colocolo62
- ベストアンサー率32% (1162/3624)
一般的なソフトウェア開発(ちょっとしたアプリケーションなども含む)であれば、ほとんどFORTRANを使う事はないと思います。 CかC++でしょう。 FORTRANは、物理系のシミュレーションや解析用のプログラムを作る場合に使われるケースが多いです。 そういった分野の研究者であれば、使用頻度は高いと思います。