2007/09/14(金) [n年前の日記]
#2 [prog][neta] _「オブ脳なんていらない」
_(via Twitter)
こういう説明のほうが自分にとっては理解できそうな気がする。
自分、C++の解説本のクラスの説明文章を読んだ時に悩んでしまったのです。たとえば構造体はメモリ上にずらずらと配置されるけど、その構造体に似た記述の中に関数まで含まれてるってどういうことなんだろと。オブジェクトを発生させると関数を実現してる処理ルーチンもメモリに複製して配置されてしまうのか。それじゃメモリを無駄に馬鹿食いするだけじゃないか。何の必要があってそんなことをするんだ。いやいや関数へのポインタだけを入れとけば馬鹿食いせずに済むのか。とかそんな想像をしてるうちにさっぱりわけがわからなくなってしまったり。メモリ上に何がどんな風に配置されて、どんな流れでその情報を使っていくことでオブジェクト指向云々が実現できるのか、そこが大まかにでも把握できないとちっともピンとこないというか。
こういうレベルの低いところで詰まってしまってちっとも先に進めない、頭の中がボトムアップしか受け付けない人間になってしまう可能性があるので、マシン語なんて迂闊に勉強しないほうがいいと思います。
でも、考えてみたら、アセンブラで作ってたゲームでも、プレイヤーや敵のワークにポインタもどきを入れて処理してたっけ。えてしてゲームプログラマーはそうとは知らずに大昔からオブジェクト指向(の真似事)をやってたのかもしれんのか。本当にそうなのか自信ないけど。
こういう説明のほうが自分にとっては理解できそうな気がする。
自分、C++の解説本のクラスの説明文章を読んだ時に悩んでしまったのです。たとえば構造体はメモリ上にずらずらと配置されるけど、その構造体に似た記述の中に関数まで含まれてるってどういうことなんだろと。オブジェクトを発生させると関数を実現してる処理ルーチンもメモリに複製して配置されてしまうのか。それじゃメモリを無駄に馬鹿食いするだけじゃないか。何の必要があってそんなことをするんだ。いやいや関数へのポインタだけを入れとけば馬鹿食いせずに済むのか。とかそんな想像をしてるうちにさっぱりわけがわからなくなってしまったり。メモリ上に何がどんな風に配置されて、どんな流れでその情報を使っていくことでオブジェクト指向云々が実現できるのか、そこが大まかにでも把握できないとちっともピンとこないというか。
こういうレベルの低いところで詰まってしまってちっとも先に進めない、頭の中がボトムアップしか受け付けない人間になってしまう可能性があるので、マシン語なんて迂闊に勉強しないほうがいいと思います。
でも、考えてみたら、アセンブラで作ってたゲームでも、プレイヤーや敵のワークにポインタもどきを入れて処理してたっけ。えてしてゲームプログラマーはそうとは知らずに大昔からオブジェクト指向(の真似事)をやってたのかもしれんのか。本当にそうなのか自信ないけど。
◎ _オブジェクト指向はどうやって身につけるのか? : 「オブジェクト脳の作り方」 - G::blog :
◎ どういう場面でオブジェクト指向が必要になるのかがそもそもよくわからない。 :
「オブジェクト指向をマスターしよう!」という前に、「オブジェクト指向を使わないとこんなにヒドイことになる」てなダメ事例を多々提示する必要があるのかもしれないと思ったりもする。が。オブジェクト指向をマスターしてしまった人は、ソースを書こうとすると無意識にオブジェクト指向で書いてしまうので、そもそもダメ事例を書けない予感。
[ ツッコむ ]
以上です。