アセンブラって必用なの?

shi3zさんところのエントリーで、「プログラマならマシン語ぐらい書けたほうがいいよねぇ」(超意訳)って話がされていて、色々な人が賛否両論のトラックバックを返していました。

なんとなく、僕とマシン語をもって話が収束しそうなので、私も適当に思うことを書いておこうかなぁと...

かさぶたさんのところでは、お守りは重りになることもあるよね。として、アセンブラを必須技術だと勘違いするよりも、自分が好きなことをやったほうが良いと書かれていましたが、この意見には非常に納得っちうか、感銘を受けました。

確かに、変に技術を持っていると周りの圧力で、自分のやりたいことからどんどん引き離されていくってコトありますもんね...

とはいえ、私は将来プログラムで食っていこうって考えている学生さんがアセンブラを勉強するのは悪いことじゃないと思うんです。

ゲーム会社の中にいるプログラマの中でも、ちゃんとした知識と技術がある人なんてのは実はそう多くないと思うんですよね。
(私が身をおいている環境が悪いだけなのかもしれませんが...)

そんななかで、先輩プログラマが話していることが正しいのか正しくないのかってジャッジしていかないことには、最終的に自分が損をすることになっちゃうと思うんですよね。

暴言を言えば、プログラマ以外の人にはプログラムを評価することなんて出来ないんだから、周りのプランナさんとかディレクタさんは、どんなに腕が悪くても先輩プログラマの言うことに信頼を置くしかないんです。

わからないと思って、バグをコンパイラのせいにしてみたり、処理が遅いのを高級言語のせいにしてみたり...

そんな海千山千のプログラマが世の中にはごろごろしていると思うんですよね。

そういう人たちのわけのわからない言葉で煙に巻かれないためにも、最初は広く浅くいろんなことをやっときゃ良いと思うんです。

ばきばき最適化をするために、アセンブラが組めるようになった方が良いんじゃなくって、一般教養程度にアセンブラの知識もあったほうが良いと...

オールアセンブラで何かを作るのは大変だけれども、ちょっとした画像処理(例えば、αブレンドなんか)をインラインアセンブラで組めるようになるのは、一週間も勉強すれば十分でしょう。

実際には、コンパイラが吐き出すコードの方が早かったりすると思うんだけど、自分で書いたコードをぷちぷちと最適化して早くしていくのも、結構面白いことだと思うんですよね。

そうやって広く浅く色々なことを勉強していくのが、自分のスキルになっていくんだし、自己防衛にもなると思う訳です。