アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
UNIXはシンプルである。必要なのはそのシンプルさを理解する素質だけである -- Dennis Ritchie
非OO版もほしい (スコア:1)
『目的』指向 (スコア:0)
なぜかというと,
Re:『目的』指向 (スコア:1)
そうですね。ただ初心者が言語を覚えるのには向いていないかも。
PHP も一部では CGI のように「プログラミングへの道」の入口だったと思うので、
そういう役目を果たすには OO になればなるほど壁が厚くなるんじゃないかな、と。
ただ、スクリプト言語としての気軽さはそれなりにあると思うので、
「入口」になりえるかどうかは実物を見てみないと分からないですね。
// 個人的には PHP5 の方針は大歓迎ですヽ(´ー`)ノ
This cookie has a scrap of paper inside. It reads:
If you can't learn to do it well, learn to enjoy.
Re:『目的』指向 (スコア:1)
オブジェクトって、それが目的そのものだとは限らないんだよね。
シミュレーター(の上で動く仮想物体)が、シミュレーションそのものの「目的」ではなく「手段」である(よね?)のと同じことでさ。
閑話休題。
個人的には、初心者を阻むかも知れない壁としては、
「オブジェクト指向」よりもむしろ「クラス指向」のほうに
責任があるんじゃないか?と思っています。
なんでもかんでも「プログラムの準備」をクラスに書き込んでから、
クラスにオブジェクトを「作らせる」。
そして実際「プログラムとして動く」のは
(大抵は)クラスじゃなくてオブジェクトである。
ここに、クラスとオブジェクトという、二段構えの構図が、出来ちゃうんですよね。
そこが(言語の形態によって度合いは増減するものの)面倒だ、とちょっと感じています。
まあ大規模になると二段構えのほうが却って安心できるかもですが、それは別問題。
というわけで最近は、クラスベースOOP言語じゃなく、プロトタイプベースOOP言語のほうが
ちょっとだけ楽になるんじゃないか?と思っていたりします。
そういう意味では、たとえば、特異メソッドが使えるRubyでも良いなぁとも思う。
初心者にはいっそ、クラス定義よりも先に特異メソッドを教えるってのは、どうだろう?
----
クラスはさておくとして(笑)オブジェクトの本質が何かという話をすると、
思うにそれは「されるもの」なんじゃないかな。能動じゃなく受動であるという点が。
メソッドを呼「ばれる」と、何らかの処理が動くんですよ、そのオブジェクトの。
だから、「される側(レシーバー)」の身になって(笑)そのオブジェクトのメソッドを書けば、結構すんなりいきます。
まあこれは、Callbackとも同じ事ですし、Cのmain()だってOSから「呼ばれる」わけですから、OOPの専売特許ではないのですが、
この「能動じゃなく受動」という考え方を理解しとくと、それだけでだいぶ、OOPなりなんなりは理解しやすくなると思います。
#てゆーか、なんでも能動的にしか考えられない人って、ちょっと人として痛いです。
#「俺はこうしている(つもり)だぞ」と主張するばかりで、それをされた対象(人/もの/ソフト)がその結果実際にどう挙動するかを慮るという視点が欠落しがち。