2012年6月8日金曜日

オブジェクト指向

オブジェクト指向とは何ぞや?
その問いに一つの視点をみつけました

オブジェクト指向とは数値の単位みたいな面もあるのではないか?
例えば数値があって
あるオブジェクトの中ではcmだったり
あるオブジェクトの中ではkgだったりするんです
同じ数値とはいえ、意味が違う
更に数値が長さのオブジェクトがあったとしても
単位がcmだったりmだったりkmだったりフィートだったり
こういうのは数値を持つ意味は違えど変換できます
こういうのは同じ親クラスを持つ子クラスに分類できるかもしれません
Rubyだと数値もオブジェクトなので
intオブジェクトdoubleオブジェクトbignumオブジェクトとかが
この例にあてはまります

オブジェクトの中身がcmとgのオブジェクトがあったとして
それの値段を求める。とかはポリモーフィズムにあたります
中身の種類が違えど同じ操作をする

商品って色々ありますが
値段という共通の属性があります
オブジェクトの中身が商品というオブジェクトを扱うプログラムでは
値段はすべての親クラスになりますね
Objectクラスみたいなものです

オブジェクトの振舞いが、移動する。穴を掘る
特定の位置で穴をほれば、宝物が出る
その問題を解決するプログラムを考えてみよう
目的は宝物を入手することです
そのために穴を掘ったり移動したり探したりする
穴を掘る。のと、移動する。のは全然違う動作です
しかし宝物を入手するという目的において二つの動作の目的が一致します

オブジェクトがある。オブジェクトは振舞う。プログラムは目的がある
そう考えるなら、プログラムの発展の次のステージにはAIが必要かもしれません
目的を目指すために、振舞いを選択し、振舞うようにメッセージを送るのです
その選択、実行をAIが担うのです

例えばGoogleで検索という動作について考えてみましょう
オブジェクトとして
名称、種類。の二つを設定します
名称と種類の(あらかじめ格納してあるとする)リストを読み込んで
種類がGAMEなら「名称 攻略」で検索
種類が芸能人なら「名称 動画」で検索
これを発展させたAIを導入してAIで検索を決定し実行するのです
なんかAIよりデータベースの方が向いてそうですね
でも、GOOGLEで調べたいんだけど名称がわからない。そういう場合に利用できそうです

例えば僕はあの芸能人の名前誰だっけ?ってよくなるんですけど
「芸能人 女性 過去半年くらいの間でぴったんこかんかんに出てた」
ってかんじのキーワードからキーワードに当てはまる芸能人の女性のリストを出して欲しいんです
僕の例においては米倉涼子でした(笑)
GOOGLEで調べても全然わからなくてmixiのぴったんこかんかんのコミュで見つけました(笑)
でもこんなかんじでわからない名称をキーワードから探してくれるAIはあって良さそうです
最近は英語の翻訳とかも進化しているので、こんな発展もできそうですよね
僕は主にHSPを使用していますが、わからないことが、公式BBSにあることがあるらしく
検索すればいいみたいですが、名称がわからないと検索できないので
キーワードからリストアップして欲しいです

こう書くと高度なAIを想像するかもしれませんが
幾つかの条件分岐の集まりも簡単なAIと言っていいかもしれません
そう考えると、大体のプログラムはAIという形式ではなくとも
簡単なAIを構成していると言ってよいと思います
更にはプログラムを作成すること自体がAIを構成するという作業であり
プログラムを試行錯誤しながら作成することもAIを構成することでしょう
と、定義するならばプログラミング言語もAIを構成しやすい方向に進化するという考えもありですね
RubyはAIを使用しているという意見も読んだような読まないような

PCを使用していると情報が多く(このくだりにおいてはプログラミングにおいては。ですね)
こんなことをしたい。それにはどんなAPIを使用すればいいのか?
このAPIと似たAPIにはどのようなものがあるのか?
このAPIを使用したサンプルプログラムを探したい
探したいことも多いし、変な情報も多い
(知りたい情報という観点から変な情報ですね)
変な情報が多いのは仕方ないとしても
そういう時にAIが動作して探し物をしたい。とは思います

僕はAmazonで書籍を買うことも多いのですが
どんな書籍があるのか?
どのような時に読むべきか?
よくわからないので大体著者買いです
CDレンタルする時もどんな曲があるかわからないので
アーティスト名でレンタルします
期待している書籍(内容)からお勧めの書籍を推薦して欲しかったりします
ジャンルがわかってる時はジャンルで検索しますが
最近だとvisualC++で検索してExpressっぽい解説の書籍をAmazonで買いました
やっぱり体系だった解説だったり、全体像の把握はWEBでは拙いので
書籍は必要ですよね
書籍とはあれだけの量の文章が詰まっているんですもの
例えば、公式の(書籍において)宣伝文とかあって良いと思います
後、対象とかこんなことを読みたいと思っているであろうキーワードとか
NETで本を買うって割と普通になってきたので
なので公式の(書籍において)宣伝文とかキーワードがあって
NETに紹介する時はそれを掲載して良い。とかそういう制度が欲しいですね
逆にキーワードからこういう情報は望まれているけれど扱った書籍がない
という観点から書籍の発行を企画したり

PCには使用していると情報が多いと書きましたが
このくだりにおいてはPC操作という側面から書いてみます
例えば、僕はたまに思い浮かんだ鼻歌を携帯に録音するんですが
前の携帯で録音した鼻歌がサイズが大きくて再生できないんです
なのでPCに取り込もうとしてPCに接続してもPCから携帯にアクセスできない
携帯は接続しました。みたいなメッセージがあるんですけど
どうやったらアクセスできるかわからない
ドライバはDLしてインストールしたんですが
ショートカット作成します。とか出てたぶんそれに失敗したぽい
ウィルス駆除ソフトが活躍した疑惑
もう電話で問い合わせるしかないな。ってかんじです

PCを操作しているとどこをどうすればよくわからない
僕はノートPC派なんですけどWiFiの接続の仕方もよくわからない
そういう時にキーワードからやり方を教えて欲しいんです
マニュアルをきちんと読めって話でもありますが
キーワードによる検索はPCならではであり
なんか僕のノートPCはマニュアルが薄い気がし
昔のPCの方がマニュアルが厚かった気がし
高いお金を出して製造してるPCなんだから
オンラインマニュアルでいいからマニュアルを充実させて欲しいです
マニュアルのわかりやすさってPCの売りとしては弱いですが
メーカー的にマニュアルが充実しているかしていないかは方針としてありであり
結局はマニュアル読まないでサポート利用する人も多そうですが
メーカーの方針としてサポートの厚さは売りになると思う
そう言えば僕のDVD時代に買ったHDDR一回もDVDにバックアップしたことないな(笑)

0 件のコメント:

コメントを投稿