- PR -

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

投稿者投稿内容
skulker
常連さん
会議室デビュー日: 2003/11/13
投稿数: 41
投稿日時: 2004-01-29 22:23
概念という概念の使われ方自体が曖昧なので(以下略)
Keisuke
大ベテラン
会議室デビュー日: 2003/10/24
投稿数: 105
投稿日時: 2004-01-30 02:57
何度も“「オブジェクト指向」だけを取り出しても、
抽象的過ぎて議論にならない”と言っているのだけど、答えが無いまま言葉遊びを続けているのはどういうことでしょうか?

“そうですね、では「オブジェクト指向プログラミング」に絞って議論しましょう”なり、
“ちがいます、「オブジェクト指向」には XXXX という普遍的な部分があるので議論が成り立ちます”
だれかこういう答えは無いですか?
sekiguchi
会議室デビュー日: 2002/10/17
投稿数: 4
投稿日時: 2004-01-30 05:02
「オブジェクト指向」を普遍的に捉えることは人間には不可能でしょう。そんなことはほとんどばかばかしい作業だと思います。人間が「もの」について「志向」し尽くすことなどいうまでもなくできるわけがないです。

究極的に抽象的なものも、究極的に具体的なものも人間にはたどり着けるはずがないからです。そもそもこれは認識論の領域だし、認識論の限界はとっくに過去の天才に証明されています。

こと、プログラミング言語の話ならば、あくまで有限的に閉じているコンピュータからしかものを考えざるを得ないと思います。

何らかの行為や結果を目的として、コンピュータを利用する。複数の人間が利用するわけですから、利用方法は言語化されていく。言語化されていけば、効率を上げるために、処理対象を具体から抽象か、もしくはその逆で整理していく方法が求められる。

その過程の中で少しずつ、多くの人が共通に理解できる効率的な方法論が積み上げられていく。私には、プログラミング言語の歴史がそういうものに思えます。

そこに、一気に究極的な目的として「オブジェクト指向」といわれても、それは当然反論できるわけもなく正しいに決まってるし、また、同時に絶対に誰もたどり着けないことは自明です。

いま現在、「オブジェクト指向」について本質的であると考えられていることは、あくまで「オブジェクトを志向しようとして誰かが考えた枠組み」について本質的なことであると思います。

そして、その本質は「ある時代における」という前提から永遠に逃れられないでしょう。

これから有益な言葉のやりとりを期待するならば、「ある時代における」という境界線がどこに引かれるのか、今存在しているプログラミング言語を利用している方が、できるだけ分かりやすく、客観的に言語化していくことではないかと感じました。

最後になって恐縮ですが、私は以上のように考えたので、このスレッドの件名である「なぜオブジェクト指向を使うのか?」という言い方は日本語として誤っていると思います。
kito
ベテラン
会議室デビュー日: 2003/03/24
投稿数: 59
お住まい・勤務地: Osaka
投稿日時: 2004-01-30 05:42
>だれかこういう答えは無いですか?

「オブジェクト指向分析・設計」に絞って議論すべきだと思います.

『「オブジェクト指向」という言葉を名詞的に使うのは気持ち悪い』という気持ちはわからないではないですが,名詞的に使った場合には,「オブジェクト指向設計」であったり,「オブジェクト指向分析・設計」を中心とする開発工程全体=「オブジェクト指向開発」を指すと思います.

このスレッドの最初のるるるさんの発言はそう読めますし,スレッド前半の議論が成立していた時はそういう前提の下に議論されていたように思います.

少なくとも「オブジェクト指向プログラミング言語(OOPL)」を指さないことは明らかで,そう捉えてしまうと全く明後日の方向を向いた発言になってしまいます.

「オブジェクト指向プログラミング(OOP)」はちょっと微妙です.OOPを行うということはオブジェクト指向に基づいて分析・設計することが前提ですし,分析・設計すればそのままOOPで実装します.設計と実装をつなぐ手段としてのOOPという視点で捉えることができれば問題ないですが,おそらく言語機能の方向に議論が発散するでしょう.なので意識して「プログラミング」より分析設計を中心にした議論にするとまとまりやすいような気がします.
なか-chan@最愛のiMac
ぬし
会議室デビュー日: 2002/07/17
投稿数: 385
お住まい・勤務地: 和光市・世田谷区
投稿日時: 2004-01-30 08:40
オブジェクト指向について、みなさんいろいろ細かい議論をされてるようですが、
ここでは結局のところ、
「古くからある手続き型のプログラミングや設計にと比べて、」
という意味しかないと思いますがどうでしょうか?

そこでのオブジェクト指向というもの(?)が、実際どういうものかは、
議論されている皆さんはイメージできていると思います。

無理やり言葉で表すと、
オブジェクトという概念を取り入れ、それを中心にして考えるやり方という
ぐらいの共通認識はあるのではないでしょうか?
なか-chan@最愛のiMac
ぬし
会議室デビュー日: 2002/07/17
投稿数: 385
お住まい・勤務地: 和光市・世田谷区
投稿日時: 2004-01-30 08:48
なぜ使われるのかというと、

従来の手続き型では、今のWindowや、マルチタスク、マルチスレッド、
GUIなどの仕組みとマッチしなくなったからではないか?と思います。
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2004-01-30 09:18
るぱんです。
引用:

ぽんすさんの書き込み (2004-01-29 22:12) より:
引用:

概念自体が曖昧なので、「宗教とは何か?」
みたいなものになるのではないかと。


概念は明確なものです。


概念の概要は・・・ですね。詳細に落とす時に何を注意したら良いかというのは
実際に組んでみろ・・・ってところですかね・・・。
引用:

引用:

引用:

ただ、曖昧ならば、
「この辺がメイン。」
「この辺からオプション。」


たとえば、オブジェクト指向言語の設計者には
「動的束縛/多態が本質で、カプセル化も継承もそのオマケだ」
という趣旨のことを言ってるひとが何人もいますね。




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

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

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

例えば、僕の中で、基本的にしていることは、
以下のような感じです。

開発同時にはなるべく「委譲」中心で考える。
運用に入って修正する段になって「継承」中心で考えよう。

でも、開発当初から「継承させるべき」所は継承させておく。
と言った具合です。

最終的には必ず、ケースバイケースになるのは承知しています。
僕が言いたいのは、その指針をどう立ててるかが知りたいんです。

[ メッセージ編集済み 編集者: るぱん 編集日時 2004-01-30 09:25 ]
まりり
ぬし
会議室デビュー日: 2001/12/05
投稿数: 329
投稿日時: 2004-01-30 11:08
引用:

Keisukeさんの書き込み (2004-01-29 21:01) より:
引用:

まりりさんの書き込み (2004-01-29 17:03) より:
引用:

NAL-6295さんの書き込み (2004-01-29 16:26) より:
NAL-6295です。

UMLはオブジェクト指向分析・設計した結果を利害関係者間で共有する為のツールの一つでしかないと認識しています。
または、自分の分析・設計結果を自己確認する為のツール。
Keisukeさんが紹介してくださったページにも、ノーテーションつまり結果を表記する為のモノとしか書かれていないですね。

つまり、UMLを使わなくても、オブジェクト指向分析・設計は出来ます。


付け加えておくと、UMLを使うからと言ってオブジェクト指向分析・設計に
なるわけではありませんね。


これらの点は、意図的に無視しました。UMLによる分析・設計の方が
具他的なイメージが湧きやすいと思ったからです。

実際、現時点では同じなのではないでしょうか?
「オブジェクト指向分析・設計入門」という本と
「UMLによる分析・設計入門」という本があったとしたら、
9割がた内容が重なるだろうというような意味です。


言わんとすることはわかります。UMLを導入する目的はOO設計のためでしょうから。

ただ、この言葉が裏返されるとたまったものではありません。
OO設計ならUMLを使おうと言うのが今の風潮ってだけですから。
この手の同一視は誤解を呼ぶので、あえて避けて欲しいところです。
(特に今回みたいな議論の中では)

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