Tuesday, July 28, 2009

コアになるプログラミング言語って

最近、趣味と実益を兼ねた日曜プログラミングを続けている。
会社ではJava、うちではC言語系列を使っている。
その過程で、一つ一つ解決していくたびに、人間とはしょうがないもので、
欲がどんどん出てきて、あれもこれも機能を搭載したくなる。
そうすると、プログラミング言語の限界を感じ、次の言語へと移っていく。

①6月:(プロトタイプのコア) C言語で実装
   ↓
②7月:コアをC++/CLIへ移行
   ↓
③7月中旬:ビューをC#で作成、C++/CLIのコアと連携させる
   ↓
④7月下旬:コア全体をC++/CLIに任せるのをあきらめる。
     薄いラッパーをC++/CLIで作成。コアをNative C++に移行。
     Native C++→C++/CLI→C#の連携を実現。
     (連携方法は下記を参照した)
Vista到来。既存C/C++資産の.NET化を始めよう! - @IT

なんと、③→④で性能が体感速度2~5倍に向上した。
なんでなんだろう。多分C++/CLIはメモリ管理処理が重いんかな。
それか、inline関数などを多用して性能チューニングしていた結果が、
Native C++環境で始めて発揮されたのかもしれない。

.NET環境というハブを通して、RubyやPythonなど多言語が連携できる時代。
Lispを書いてる人の隣で、Railsを書いてる人もいる。
会社の先輩の言葉を思い出す。
「コアは生き残る言語で書け!」
大学時代から使ってきたNative C++に戻ってきたのは、運命かとも思えるこのごろ。

No comments:

Post a Comment