- PR -

なぜオブジェクト指向を使うのか?

投稿者投稿内容
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2004-01-30 11:10
引用:

るぱんさんの書き込み (2004-01-30 09:18) より:

こういう議論がしたいんです。
○○派は「〜〜だ」
××派は「△△だ」
その違いはどこにあるんだろう?

こういうケースでは○○派のような考え方がいいだろう。
違った別のケースでは××派のような考え方がいいだろう。

という考え方の方針みたいな物が欲しいんです。
こういうことについて議論したいんです。


途中略してますが、おそらくこれはこれで盛り上がる話なので
別にスレッド立ててもよさそうな気がします。
object
ぬし
会議室デビュー日: 2002/03/20
投稿数: 338
お住まい・勤務地: 香川県高松市
投稿日時: 2004-01-30 12:24
objectです。

>こくぼさん
>仰るとおり概念を表現するには言葉が必要ですね。
>ただ、ぼくにはどうしても「Object-Oriented」の言葉の意味だとか何を表現しているのかについて考えるのは限界があると思うんです。
>
>1)What・Why
>2)How
>
>1を自分の中で定義づけるにはどうすればよいですか?
>1を相手に伝えるにはどうすればよいですか?
>
>1を使う側である2を利用するしかないと思いませんか?(バランスの問題かもしれませんが)

「1を自分の中で定義づけるにはどうすればよいですか?」に関して
「Object-Oriented」という言葉は、「こくぼさん」或いは私が「創出」した言葉ではないですよね?
という事は、「こくぼさん」或いは私が、単独でどんなに考えても、定義付ける事は出来ないという事です。
つまり基本的には、この言葉を「expression」した、本人に聞くしか無い訳です。
でも、「Object-Oriented」という言葉は、確固とした「意味」を持っていますから、本人以外で、殆ど同じ意味で使っている人に聞く事も可能です。
私が、「オブジェクト指向ソフトウェア工学OOSE」(Ivar Jacobson)を薦めたのは、
「Ivar Jacobson」がその人だ
と、私が思っているという事に他なりません。
#私が、「Ivar Jacobson」を薦めているのは、私が知っている限りでの、もっと広くて基本的な観点からですが。

次に「1を相手に伝えるにはどうすればよいですか?」に関して
それには、「Object-Oriented」という言葉の「本質」を「こくぼさん」自身がしっかり理解し、自分の言葉で表現出来る様になる事。
次に、その「こくぼさん」の言葉を以って、相手が自分の言葉として「理解」出来るまで、相手と議論する事。
最後に、その議論の中で、相手が「自分の言葉」として理解出来る事。
以上の過程全てが必要だと私は思います。


所で、
こくぼさん、「分析と総合」という言葉をお聞きになった事はありますか?
これは、「演繹と帰納」と言っても良いと思います。
#ここのサイトでは、この言葉を私は今まで使って来ました。

簡単に言うと、
ものを細かく分ける為の「分析」と、逆にそれらをつなげて全体を再構成する為の「総合」という事です。
この「分析と総合」は、科学一般の普遍的な方法です。
物理は当然使ってますし、数学もそうです。

数学の「微分」は分析の例ですし、「積分」は「総合」の一つの例です。
物理の場合だと、分析(演繹)は法則をベースに行われますし、総合(帰納)は実験結果をベースに行われます。

この物理の場合が判断し易いと思いますが、
「分析と総合」は「双方が共に働く」事によって、「科学の進歩を支えている」という事実です。
実際は、「法則」をベースにその人の何か(直感)を方針として物理実験を行い、「法則」に対して「例外」を発見する。
逆に、その「例外」をベースに「法則」は再構成され、新しい「法則」(世界観)が生まれる。

「オブジェクト指向」という言葉は、ソフト開発に於ける、この「世界観」にもなっている言葉だと思います。

それから、「オブジェクト」自体も、実は人間が認識する事無しには、得る事が出来ないものです。
従って、そういう意味では、
オブジェクト指向は、人間の認識対象としての抽象的な「オブジェクト」に対して、新たな「クラス」ベース等の抽象を行う
という世界観と言えると思います。

基本的には、こくぼさんの認識も、間違って無いと私は思います。
1)を深く理解しない限り、2)を心から納得する事は出来ないし、
独自の2)を創造出来ない限り、1)を新たな段階に推し進める事は出来ないのではないでしょうか?
つまり、「それだけでは、いけないんだ」という事だと思います。

>All
ここまで、抽象的に議論・考える事が出来ないという意見が、主流を占めるとは思いませんでした。
#これでは、インドの後塵を拝しても仕方ないかも知れませんよね…。

人間が、何かを認識し、それを言葉で正確に表現し、議論しようとした時、それは哲学している事になるんだと思います。
言葉の意味を明確にしながら議論すると言う事は、「国語辞典」を引く事とは違って、哲学する事に相当するんだと思います。

今までの議論をご覧になって、議論になってないと、もし思われるのなら、
それはあなたが、抽象的に考える力が弱い為なのかも知れませんよ?

#演繹と帰納に関わる私の発言としては、次のものがあります。
#件名:『XMLにおける「ボヘミアンと貴族の階級闘争」を読み解く』を読み解いてみたら例示が欲しくなりました
#これは、また違った観点からの「演繹と帰納」になっていると思いますので、少しは参考になるかも知れません。
#この中で、「masayh」さんは、私と基本的には同じ内容を、全く別の観点から述べられていると思います。
#もし、参考にならないとお思いなら、無視して下さい。

私はこれで終わります。
lang8
会議室デビュー日: 2004/01/29
投稿数: 15
投稿日時: 2004-01-30 12:58
議論が分散する傾向にあるようですが、
スレ主の、
「そもそもなんでソフトウェア開発にオブジェクト指向が利用・必要とされるようになったのか?」
という初心者の問いに対して、
私であれば、
「ソフトウェア開発からコーディングの要素を極小化するため」
と答えると思います。

ソフトウェア開発は様々な理由からモデル化される方向性にあり、
オブジェクト指向技術はMDAにみられるようにモデル化技術との親和性が高いため、
近年用いられるようになったのだと考えています。
(この点で、どちらが先かという議論はあまり意味がないと思われます)

ある意味ソフトウェア開発から、従来の主役であったプログラマーを否定する方向性であるため、
この議論の初期にみられたような、特定分野のプログラマーの反発を招きやすいのかも知れませんが、
ソフトウェア開発における最大の障害要因であるバグがコーディング段階にある以上、今後も
このコーディング要素を極小化、局所化する流れは変わらないのではないかと思っています。
lang8
会議室デビュー日: 2004/01/29
投稿数: 15
投稿日時: 2004-01-30 13:09
連続投稿になりますが気になったもので。

>Object
前に「悪夢を統べるもの」さんに対して言い逃げのような
発言をされていましたが、
「私の方の時間も取れませんので、一応ここで置く事にします」
「#もし、参考にならないとお思いなら、無視して下さい。
 私はこれで終わります」
などの発言も同じではないでしょうか?

とうてい議論に参加される態度ではないと思います。



[ メッセージ編集済み 編集者: lang8 編集日時 2004-01-30 13:10 ]
こくぼ
大ベテラン
会議室デビュー日: 2003/08/11
投稿数: 229
お住まい・勤務地: 国境の南、太陽の西。
投稿日時: 2004-01-30 14:24
こんにちは。

なんだかビジネスとしてのオブジェクト指向ではなくて学問としてのオブジェクト指向になってきましたねf(^^自分的にはこういうのも好きですけど。

>「Ivar Jacobson」がその人だ

とりあえず本を読んでみれば少しはわかりそうですね。昨日早速「オブジェクト指向ソフトウェア工学OOSE」を調べてみたらすでに復刻版も在庫がなくなっていたので、登録だけしておきました。

>所で、
>こくぼさん、「分析と総合」という言葉をお聞きになった事はありますか?
>これは、「演繹と帰納」と言っても良いと思います。

「分析と総合」は記憶にありませんが「演繹と帰納」は論理展開の基本なのでつねに意識しています。

>「分析と総合」は「双方が共に働く」事によって、「科学の進歩を支えている」という事実です。
>実際は、「法則」をベースにその人の何か(直感)を方針として物理実験を行い、
>「法則」に対して「例外」を発見する。
>逆に、その「例外」をベースに「法則」は再構成され、新しい「法則」(世界観)が生まれる。
>「オブジェクト指向」という言葉は、ソフト開発に於ける、この「世界観」にもなっている言葉だと思います。

オブジェクト指向がソフト開発の世界観ならそれに影響を与える「例外」とは何になるのでしょうか?
(いろいろとあると思いますが、重要だと思われることや例などあげてもらえば)

>それから、「オブジェクト」自体も、実は人間が認識する事無しには、得る事が出来ないものです。
>従って、そういう意味では、
>オブジェクト指向は、人間の認識対象としての抽象的な「オブジェクト」に対して、
>新たな「クラス」ベース等の抽象を行う
>という世界観と言えると思います。

ここのあたりまだ理解できていないので、頑張ってみたいなと思っています。


>基本的には、こくぼさんの認識も、間違って無いと私は思います。
>1)を深く理解しない限り、2)を心から納得する事は出来ないし、
>独自の2)を創造出来ない限り、1)を新たな段階に推し進める事は出来ないのではないでしょうか?
>つまり、「それだけでは、いけないんだ」という事だと思います。

バランスの問題ですよね。1)も2)も相互補完の形になると思います。

>私はこれで終わります。

そんなこと仰らずにお願いしますね(^^)



---------------自分的に考えると
ぼくの中では

    演繹 ・・・ 一般論(社会)
    帰納 ・・・ 個人的なこと(個人)

みたいな分け方をしています。(本当は法則と事例みたいに分けるんだろうけどそれではつまらないので)

人間一人一人の個人的なことが抽象化されて一般論が成り立ってゆくと考えています。
(仮にこの分け方が正しいとして)オブジェクト指向を一般論(社会)とするなら

    「ソフトウェア開発に携わる人たちの個人的なことがオブジェクト指向という一般論(社会・世界観)を作り上げた(時間は常に動いているのだから作り上げてゆくともいえるんじゃないか...?)」

なんだか
「オブジェクト指向はソフトウェア開発のその時々の最先端を記号化したもの」
みたいな気分になってきた。。。
skulker
常連さん
会議室デビュー日: 2003/11/13
投稿数: 41
投稿日時: 2004-01-30 14:56
引用:

objectさんの書き込み:
「Object-Oriented」という言葉は、「こくぼさん」或いは私が「創出」した言葉ではないですよね?
という事は、「こくぼさん」或いは私が、単独でどんなに考えても、定義付ける事は出来ないという事です。
つまり基本的には、この言葉を「expression」した、本人に聞くしか無い訳です。



それではただの"はじめに言ったもん勝ち"ではないですか?
OOという言葉もJacobsonが考えたものではないでしょう。
元々存在していたOOというものについてJacobsonが考えて定義しなおした結果がOOSEな訳です。
# だからといって私の考えるOOがスリーアミーゴスのそれに比肩出来るだなんて妄想は夢にも思いません

自分なりに定義を考えてみるのも大切な事だと思います。当然、お作法として、自分の意見を開陳する前に過去の学説を勉強しておくべきですし、独り善がりに考えるだけでは仕方ないです。


抽象的な事柄だから議論できないのではなく、抽象的な事柄なのでお互いに歩み寄りにくく会話が成立しづらいんではないかと。
「方法論論者とテロリストの違いは? --- テロリストとは交渉できる。」ってやつです。

OOとは自分が世界をどうみているか、という哲学そのものだと思うので、君の世界の見方(価値観)より私の世界の見方(価値観)のほうが優れている、みたいな話にすぐなっちゃいます。そうなると、価値相対主義を取っている世の大多数の人にとってはこの議論は無駄ですから。


引用:

こくぼさんの書き込み:

なんだか
「オブジェクト指向はソフトウェア開発のその時々の最先端を記号化したもの」
みたいな気分になってきた。。。



「ソフトウェア工学はソフトウェア開発のその時々の最先端を記述したもの」 とか思ってみたり。
OOもソフトウェア工学のひとつなので当然そんな気分になる訳で。
と、単なる同語反復の言葉遊びで失礼。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2004-01-30 15:07
引用:

こくぼさんの書き込み (2004-01-30 14:24) より:
こんにちは。

なんだかビジネスとしてのオブジェクト指向ではなくて学問としてのオブジェクト指向になってきましたねf(^^自分的にはこういうのも好きですけど。


オブジェクト指向の基本がどこか・・・から地道に構築していく方が逆に早そうですね。
特徴は・・・
1.継承
2.多態性
3.カプセル化
4.オーバーライド
かな?
個別にもっと深く掘り下げる事が大事なのかな・・・?
1.継承
「継承」の特性と、「委譲」の特性を把握して、使い分ける事が必要?

2.多態性
「多態性」の目的と「メリット」と「デメリット」を把握した上で、
「オーバーロード」と「オーバーライド」とどちらをメインに据えるべきか?かな?

3.カプセル化
カプセル化する事の「メリット」と「デメリット」を認識する事・・・かな?
何故情報を隠避するのか・・・等。

4.オーバーライド
「オーバーライド」の特性と、「オーバーロード」の特性を把握して使い分ける事が必要?

ってところかな?
個別にスレッド立てるかな・・・?

★この件について御批判、御意見、御要望等お願い致します。★
引用:

人間一人一人の個人的なことが抽象化されて一般論が成り立ってゆくと考えています。
(仮にこの分け方が正しいとして)オブジェクト指向を一般論(社会)とするなら

「ソフトウェア開発に携わる人たちの個人的なことがオブジェクト指向という一般論(社会・世界観)を作り上げた(時間は常に動いているのだから作り上げてゆくともいえるんじゃないか...?)」

なんだか
「オブジェクト指向はソフトウェア開発のその時々の最先端を記号化したもの」
みたいな気分になってきた。。。


記号化しても、その真意を把握して使いこなさなければ意味の無い物で、
「法律を作ったは良いけど、運用できない!」
になるのかと。

ある程度まとめて普及活動するのが必須なのかな・・・?と。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2004-01-30 15:16
るぱんです。
引用:

lang8さんの書き込み (2004-01-30 13:09) より:

>Object
前に「悪夢を統べるもの」さんに対して言い逃げのような
発言をされていましたが、
「私の方の時間も取れませんので、一応ここで置く事にします」
「#もし、参考にならないとお思いなら、無視して下さい。
 私はこれで終わります」
などの発言も同じではないでしょうか?

とうてい議論に参加される態度ではないと思います。


え〜ですね、議論しかけてみたらいかがでしょう?
その結果によって批判されるなら支持いたします。

話が発展していって、objectさんの意見が元になって紛糾したのなら、
議論に出てきてもらえば良いのかと。

objectさんは自分なりの意見を既に出されてますし、
そこから派生した議論が出てきてない以上は
「これ以上口をはさんでも意味がない」と考えられて自然だと思います。

要は、言葉が悪いですけれど「引きずり出す!」って位議論したら良いんですよ。
他人の意見眺めてるだけで恩恵にあずかろうって方が問題だと思います。

と言うわけで、議論に参加したくなるぐらいの良いテーマの議論ができたらいいなぁと
考えます。

スキルアップ/キャリアアップ(JOB@IT)