今週は、基底クラスカノジョが海外旅行中なので派生クラスカノジョAと週末を過ごせる珍しい週であった筈なのだが、現地のゲームプログラマ同僚Jが出張で日本に来るとの一報を受け、例外処理に難儀しているモリサコです。皆さんこんにちは。
いつの場合でも正しくcatch~tryを仕掛けておかないと、後処理が非常に面倒くさくなる好例です。気をつけましょう。

 さて、その同僚と言うのが面白い人物なのです。この白人ネイティブアメリカン、役職も俺と同じという事もありかなり長い付き合いなのだが、いつだったか英語とオブジェクト指向にまつわる論議の着地点が大変合理的であった事を思い出した。

 彼は日本語も一応は勉強しているのだが、まあ全く実用には至っていないと思ってほしい。その上で話を進めるが、端的に言って現代のオブジェクト指向性の高い言語は、日本語よりも英語の構造との類似性が高いのだ
同じ「言語」だからと言ってそれは単なる同音異義であり、その構造を比較しても何の意味も無いかと思われるだろう。その通り。何の意味も無いのだ。これは単なる言葉遊びなのである。

 英語では原則として主語が動作を伴って文章先頭に現れ、センテンスのスタートを彩る。日本語では間に目的が挟まる。俗に言うSVOとSOVなワケだがまあ要するに「I read the book.」「私はその本を読む」みたいな事だ。

ここで注目して欲しいのだが、冒頭の「I/私」は基底クラスと言える。これをインスタンスと考えるとまた趣向が違ってしまうので気をつけて欲しい。あくまでも主体性を持つ前の概念。つまりインターフェイスの模写だ。

 次いで英文においては「read」が来る。これは動作実装を司る派生クラスであると言える。「the book/本」はパラメーターだ。日本語の「本」はこれが間に挟んだ上で最後にその「動作」が来るワケであるが、英文ではインターフェイス+動作実装がまず確固として存在定着し、最後にパラメータが付加されるワケだ。
構造的にこの段階でハッキリと判るのは、英文は至極まっとうにオブジェクティブなのである。最後のパラメーターを取り替える事が可能で、これは本質的に「I read」というインスタンスを使い回す事が出来る事と捉える事が出来る。3Dモデルの頂点セットはメモリ上に一つしかないが、姿勢というパラメーターを与え直すことでリソースを節約する「インスタンスモデル」にピッタリと適合するのだ。
対して日本語は「私は 本を 読む」という手続き型プログラムであると言える。BASIC言語に代表される前時代的なコーディングモデルだ。このコードリソースを破壊する事なくもう一つの「本2」というインスタンスモデルを描画させる為には、もう一セットの「私は 本2を 読む」というコードを用意するか、「私は」「読む」という個別のコードインスタンスと「本2」というリソースを単方向リストで繋いでいくしかない。これはまさしく前時代的である。タスクシステム等と呼び「仕事」をメモリ上で論理的に繋いでいた時代が懐かしいでは無いか。


 どちらが効率的であり優位性があるとかそういった話題ではない。文中の通りこれは言葉遊びだ。しかし俺は英語、ゲームプログラム、両方とも生涯まるごと惚れ込んだ学問でもあるので、この親和はどことなく嬉しいものだ。

 人格破綻している博愛主義者のくせに、こんなカワイイ一面も持っているんだぞというアピールを、当blog駆け出し記事として前方宣言しておこうという魂胆だ。


 これからの国際市場において、英語というツールが自分の中に有ると無いとでは立ち位置が全く変わってくる。生涯ゲームプログラムで食っていこう!そう思う若きルーキーさん達よ、そう思うのであれば英語習得を人生設計の視野に入れる事をオススメしよう。

 そういう方が居ると信じ、近く英語学習に関する記事を書いてみたいと思う。
その時に向け直前文脈中に、学習を激しく非効率に貶める二つのキーワードを仕込んでおいた。「ツール」と「英語学習」だ。このキーワードからどの様にして非効率性に発展するのか、考えてみて頂くのも一興かと思う。


 さて、派生クラスカノジョAのご機嫌取りをどうしたもんかな・・・。