- PR -

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

投稿者投稿内容
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2004-01-28 15:18
>はにまる様

お見事。(笑)
がるがる
ぬし
会議室デビュー日: 2002/04/12
投稿数: 873
投稿日時: 2004-01-28 15:24
ども。がるです。

そういえば「書き込んでないなぁ」と思いまして。
えらい遅くなりましたが ^^;

引用:

よく言われる生産性・再利用性・保守性の向上といった理由は、別段オブジェクト
指向でなくても実現可能だ。そう思った事はないですか?(私はあります)


思いますねぇ。わりと常々(笑
ただ、それら「他の」手段と比較して、オブジェクト指向で
持っていったほうが「よりいっそう楽になる」ことが多いのも
また私の実感ではあります。

引用:

「そもそもなんでソフトウェア開発にオブジェクト指向が利用・必要とされる
ようになったのか?」


「ソフトウェア業界」としての話をしてしまうと。
まぁ正直なところ「銀の弾丸候補」だったように思います。
現実、ンなに都合のよいものではないのですが。
結局のところ、常に「生産性・再利用性・保守性の向上」は大きな
命題で、それに対する銀の弾丸はいつでも要望があるって
ところなのだろうなぁ、と、ちとシニカルに :-P

ただ、そうは言っても「美味しい所をつまむと結構いける」
ので私はOOを愛用していますが。

で。結構悩むのが、じつはここ。
引用:

オブジェクト指向は他の方法に比べ優先する理由が本当にあるのだろうか?
皆さん(私を含め)の持っているその答えは初心者を納得させるに足るものだろうか?


私が思うに、OOは確かに便利なのですが、それはある程度
プログラムとか設計とかやってるから理解できるものであって。
言い方を変えると「苦労したから楽であることがわかる」のだろう、と。
そこから逆算するに、初心者を納得させるすべが、じつは
どうもぴんとこないんですね ^^;

なんていうか「mainだけのベタで1万行以上のCソース」とか
を読まされて保守して地獄を見た後に、とかだと、OOが
天国からの福音のように感じるのですが :-P
# ちなみに実話。同じく「VBでベタ2万行ちょい」ってのもある。
# スパゲティーPerl 2000行ってのもかなりイヤでした ;;

私にとってOOって「便利な道具」で。
ただそれは「苦労してたから便利であることに気づいた」
ものでもあるので。
結局のところ「必要だから使ってる」以上、まず大切なのは
「必要になること」のような気もします。

なので、個人的にオブジェクト指向を教えるときは
・まず苦労させる
・で「楽な」解決方法があることを教える
というステップを踏みます。そうするとみんな興味がわく
らしいので(笑
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2004-01-28 15:25
unibon です。こんにちわ。

引用:

はにまるさんの書き込み (2004-01-28 15:06) より:
はにまるより、着色料たっぷりで伝え致しました。^^/~~


パクりました。


未経験者 「オブジェクト指向って言葉を聞いたのだが、そんなにダサいのか?」
経験者  「どの言語でもデータの変数てありますよね?」
未経験者 「ああ、それが?」
経験者  「変数使わずに開発を考えられますか?」
未経験者 「そりゃ無理だろ!」
経験者  「変数を使うのにいちいち命令文を定義しないといけないんですよ。ダサいと思いません?」
未経験者 「そりゃダサい!」
経験者  「オブジェクト指向(言語)は、常にそれが要るんです!」
     「変数にアクセスするのにいちいち命令文を作って変数との対応を考えておかなければならないなんて信じられない状態になりますよ!」

未経験者 「ダッさーーー!」
(まだ未練を持って食い下がる場合は、下へ続行)

未経験者 「それ、今の部品化と一緒じゃねーか?」
経験者  「でも、枠組み自体は、テンプレート化し、
      テンプレートをコピーして穴埋めする形を取っていますよね?」
未経験者 「ああ、それが?」
経験者  「そのテンプレート自身もプログラムの部品として作っておかなくてはならなくて、
      そのために継承関係もいちいち考えて、インターフェースとクラスを定義してやっと
      現作業で、穴埋めしている部分をその引数として渡す事が出来るんです。」
未経験者 「ダサそうだね...」
経験者  「開発途中や検証中に、テンプレートの不備や改善点って出てきませんか?」
未経験者 「当り前!事前に必要な物が全て解る訳が無い!」
経験者  「テンプレート自体が、プログラム部品なので
      その部品を直すと、部品から派生した全プログラムに影響を及ぼしてしまい手が付けられなくなるんです。」
未経験者 「ダッサーーー!」
るぱん
ぬし
会議室デビュー日: 2003/08/01
投稿数: 1370
投稿日時: 2004-01-28 15:32
るぱんです。
>unibon様
イケてる。(激笑)
はにまる
ぬし
会議室デビュー日: 2003/12/19
投稿数: 969
お住まい・勤務地: 誤字脱字の国
投稿日時: 2004-01-28 15:38
はにまるです。

 >unibon様
相当笑えました!美味い!   ←こいつ不気味
 
 確かに、長所短所は表裏一体ですね!

未記入
ぬし
会議室デビュー日: 2002/03/28
投稿数: 255
投稿日時: 2004-01-28 22:22
>言葉の意味論になってくるかもしれませんが、
>「Object-Oriented」=「オブジェクト指向」ですよね。
>指向する=目指すとかって意味と捉えています。
#別に目指してるわけじゃない.

>以上の前提に立って考えた時に、
>「んじゃ、なんで目指してるんだよ!」ってな話になると思うんですけど、
だから,
「オブジェクト指向プログラミング」
とかで,一つの専門用語なんです.

virtual memory,virtual machine,virtual reality.
同じ"virtual"でも,それぞれ意味が異なります.

EPROMとCD-ROMは同じ「ROM」ではあるが,かなり異なる物です.
それこそRISCやVLIWの様な例もあります.
"Formula Translation","List Processor"もそうですかね.
コンパイラ,インタプリタ,アセンブラだってそうかな?

「オブジェクト指向プログラミング」なども,それらと同様.
素人が無い知恵絞って言葉遊びをやっても,本質は見えてきませんよ.
----
floppy disk/Hard Diskを忘れてました.
どれほど硬いfloppy diskがあったとしても,それはハードディスクではないんですよ.

「メモリースティック」とか「コンパクトフラッシュ」とか,この手の単語なんて
IT業界ならいくらでもあります.


[ メッセージ編集済み 編集者: 悪夢を統べるもの 編集日時 2004-01-29 01:11 ]
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2004-01-28 23:08
悪夢を統べるものさんの投稿と内容がかぶりますが、

るぱんさん
引用:

言葉の意味論になってくるかもしれませんが、
「Object-Oriented」=「オブジェクト指向」ですよね。
指向する=目指すとかって意味と捉えています。



日本語では、オブジェクト指向と名詞っぽく感じてしまいますが、正しくは形容詞です。
なので、後ろに分析なり、設計なり、プログラミングなり、言語なりをつけて、一つの用語となります。

# オブジェクト指向、と名詞的に使われるとなんか変な感じがする。
skulker
常連さん
会議室デビュー日: 2003/11/13
投稿数: 41
投稿日時: 2004-01-29 08:23
引用:

悪夢を統べるものさんの書き込み (2004-01-28 22:22) より:
virtual memory,virtual machine,virtual reality.
同じ"virtual"でも,それぞれ意味が異なります.

EPROMとCD-ROMは同じ「ROM」ではあるが,かなり異なる物です.



virtual=「厳密にいえば違うが人から見れば似たようなもの」
ROM=「読み出し専用記憶」と抽象化すればおなじものでしょう。
折角のOOの話題なのだから物事を抽象化して考えた方が・・・

ところで、virtualを「仮想」って訳し始めたのは何が端緒なのでしょう。
They are virtually divorced. (あそこの夫婦はもう離婚したも同然だよ) みたいなのが元々の使い方だと思うんですけど、いったいどこから「仮想」が?

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