C言語でプログラミングするには人生は短すぎるかどうか

IMG_0845

IMG_0845

前に書いた記事に結構アクセスがあったので、私の意見を書いてみる。

「C言語でプログラミングをするには人生は短すぎる」だろうか。私はそんなことはないと思う。Miguel氏もそんなことを言っていない、というのは、こないだの記事に書いた。

氏が言いたかったのは、ゲームプログラムにおいて、ワールドルールなど、複雑だけどそれほど早い実行速度が要求されないような場所でC#(mono)をつかったらどうか、という主張だった。

これは当然なことである。たとえばあなたが「Fallout」のイベントスクリプトエンジンを実装しなければならないとする。どのような仕組みにしたら、最も楽に、手間をかけず、膨大なイベントを実装できるだろうか?

私だったら、氏が言うとおり、C#か、それに準じた、C++より標準ライブラリが充実しているプログラミング言語を使うだろう。もしくは、ゲーム中のイベント処理に適した簡単なスクリプト言語を実装すると思う。まちがっても、ハードコードでそのままC++に書いたりはしない。

これは単純に適材適所、というだけの話であると思う。

なので、なぜこれが議論になるのかわからない。

Cでプログラミングするには人生は短すぎるか?それは、C(C++)で組むには不向きな処理をさせるならばそのとおりだろう。前述のように、ゲームのイベント処理がそうだ。あとは、例えばwebを適当にクロールして特定の画像を集めるプログラム、とか。そういうのを組めと言われてCで組む人はいないだろう。

逆に、デバイスドライバをC#で書く人はいないし、今流行りのarduinoに書き込むプログラムをC#で書けるようになって喜ぶ人もあまりいないだろう。そういう時は、かならずCやC++、もしくはCのメーカー独自拡張言語なんかを使うことになる。

ほかにも、例えば言語間の速度比較の話でも、往々にしてこのような不毛な議論が巻き起こることが多々あると思うんだけど、いずれも「俺が使ってる言語を蔑むのはゆるさねえ」以上の主張から抜けだせて居ないような気がすんだよね。

車で言ったら、ランエボが一番早い!いいや、GTRが一番早い!なにいってんの、国産車が最速なわけないじゃん。みたいな不毛な議論、ね。

まあそれはそれで、どう思うかは人の勝手だからいいんだけど、俺は別にプログラミング言語に関してはその場面、要求スペック、やりたいことなどによって柔軟に使用する言語を変えていけばいいだけであって、別に議論するほどのことでもないんじゃねえかなあ。と思うんだよね。

たとえば、「Cしか知らんから、C#で打ったほうが早いのかも知らんけど、学習する時間も気力もないからCで打つよ」って人が居たとしても、それは立派に、最適なプログラミング言語を選択してると言えると思うね。

まあ、酔っぱらいが言うことなんで、当てにならないと思うけど。