09/07/11 06:51:49
言語は、言語開発者がそれを作る目的によって違うので、いくつもの似たような言語があっても目指すものが違うんですよ。
コンパイラとか作ったこと無いと分からないんでしょうけど。
似たように感じるのは、文法が似てるからだとは思いますが、ハスケルみたく奇抜な文法だと多分あんたじゃ習得できないでしょう。
分かりやすいところでは、Cでは2D,GUI向けの言語ではないので、「ウインドウを作ってボタンを押してハローワールド」
これだけのことをやるのに、win32だと50行ぐらいは必要でしょう。
それ用のランタイムライブラリや言語だと2-3行でしょうけど、この違いは文法(リテラル)の差ですよ。
この言語上の文法が内部で車輪(よりネイティブに近い実装ライブラリ)を呼び出してるんですけど、これを再発明する必要はないでしょう。
変色フィルターとかアフィン変換とか通常の画像処理はjava,c#でライブラリとしてほとんどあるんで、勉強目的以外なら普通は自分で改めて書いたりませんけどね。
何とかの分離とも言いますが、とくにかくCのコードはIOだけにしてそのハード用の使い捨てにして、画像処理のアルゴリズムなら、javaとかvmのプラットフォームを中心にすえてコードを書くといいですよ。
後2-3年で携帯とか他のOSでもそのアルゴが何の変更も無く普通に使える(再利用できる)ようになるでしょうし。