2013年5月22日水曜日

言語の使い分け

大学のとき、C言語の単位を落としました。
某大学のコンピュータリテラシーはUNIXなので、WindowsやMacすら触ったことなかった人間が、いきなりターミナルなんかでls、pwd、cd、mkdirなんかで操作を覚えて、muleを使ってました。

数年後、本気でCを勉強しようと思ってポインタの本を買って、すごく世界が広がりました。配列とポインタのつながり、構造体変数のアクセスなんかがわかると面白くなりました。

あくまで科学技術計算の範疇なので、流体の差分法や有限体積法を数値的に解くツールにすぎないので、メモリの管理とかに気を取られたくはないですが、如何せん、ほかの言語に比べて速いです。科学技術計算目的ならFortranとC/C++の2択になると思います。

一方で、出てきた解析結果の整理までFortranやC/C++を使うことはなく、VBAやその他スクリプト言語の利用が多いと思います。FortranやC/C++がヘビー級、スクリプト言語はライト級でしょうか。二つくらいあると良いと思います。
  • ヘビー級(Fortran、C/C++ インテルコンパイラだと激速、PGIは使ってないですが、GPUに計算させるならPGIのようです)
  • ライト級(Perl、Python、Ruby、Pythonのmatplotlibはすごいです)
  • ワンライナー(Awk、ほとんど勉強しなくてもCを知ってればかなり使えるはず)
ただ、科学技術計算に特化すると、Java、PHP、JavaScript等のWeb関連で利用頻度の高い言語には触れないことが多いですね。なんか馬鹿にされている気分なので勉強した上で、敢えて上記のヘビー級とライト級を使いたいです。
AwkのワンライナーはLinux文化が色濃いですが、むちゃくちゃ便利ですね。なぜ広まらないのか不思議です。

遊びだったり、趣味のプログラムならRealBasicを使いたいです。これが仕事に出来たらいいなあと最近思っています。GUIでいろいろ追加できるので便利ですよ。

0 件のコメント:

コメントを投稿