コンポーネント指向って、どのような理念の元に作られたものですか??
何が聞きたいのかというと、例えばオブジェクト指向に関して。
オブジェクト指向とは、オブジェクトを中心にデーター(フィールド,etc…)、メソッドをまとめクラスで定義したうんぬん…とプログラミング入門書に書いてあります。まぁ、わかるんですが。でも一番素晴らしいなと思ったのは、こんな感じの以下の説明でした。(参考 スッキリわかるJava入門)
オブジェクト指向とは、メモリ上にあたかも実体が存在するように再現すること。つまり、現実世界を模するバーチャルの世界をよりリアルにする手法。
そんな感じの、理念がかかれてました(様な解釈をしました)。
何かロマンチックだなと思いました。メモリ空間上にあたかも命があるようなインスタンスを生成しちゃえる様な夢のある考え方の理念があるなと。
コンポーネント指向も、こんな夢のある話がさらに進化した話なんですか?
それってどんな話ですか?
なんかうまく質問できなくてすみません。
A 回答 (21件中1~10件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
>>オブジェクト指向とは、メモリ上にあたかも実体が存在するように再現すること。
つまり、現実世界を模するバーチャルの世界をよりリアルにする手法。過去において、オブジェクト指向に対してそんな感じの「大間違い」な説明が多くの書籍でされていました。
メモリ上に作ったクラスとそこから作られる実体(インスタンス)が現実を表現することは無いのですけどね。
ですので、「筆箱」に「ボールペン」を「入れる」という命令が出来ると同様に、「筆箱」に「戦艦大和」を「入れる」命令も可能とするような発想というか、勘違い(害毒)がIT業界と一般企業に流れました。
それで、オブジェクト指向言語であったJavaを過大評価してしまい、みずほ銀行がシステム統合でCOBOLからJavaに移行するために、4000億円を費やしたけど、プロジェクトの完成が絶望という悲劇が生まれました。
>>コンポーネント指向も、こんな夢のある話がさらに進化した話なんですか?
ネットでちょっと検索すると答えが得られますよ。
個人的には、オブジェクト指向を知るよりも、ずっと前から知っていた考え方であり、オブジェクト指向とは無関係です。
その、戦艦大和を入れるとプログラミングしちゃう人はそもそもオブジェクト指向が何たるかを理解できてないのでは…論理的に可能になっちゃうのはなっちゃうのですが。。。そもそも、それはリアルを模してないので、私の解釈したオブジェクト指向の理念に反する。だから問題も起きるのかと。
理念が間違ってるというより、プログラミングのバグなのでは…。
検索したものの今一ピンとこなかったのですよね。。。
回答、ありがとうございました。
No.2
- 回答日時:
現実世界を模するバーチャルの世界をよりリアルにする手法 ← 嘘つきな本だな。
オブジェクト指向って、機能(部品)別にクラスと言う概念で作ってその機能(部品)を組み合わせて
アプリケーションを作る手法。その部品を継承して機能を強化する事もあるけど。
ようは、部品毎にプログラミングしておいて組み合わせて使う。後でメンテナンスしやすいとかなんとか。
メモリを余分に使うかも。(忘れた)
メモリ節約するなら、DLL等とか使うけど。まあ所詮だれかさんが考えた手法にすぎない。
JAVA、C#、VB、Delphi、等所詮人が作ったルールでプログラミングしてるだけ。
アセンブラ覚えてC言語おぼえる方がよっぽどPCに詳しくなるし独自コンパイラも作れる。
で、コンポーネント指向はよくわかりません。(どうでもいい)
まあ大勢で作るようなアプリケーションは、オブジェクト単位(コンポーネント単位)で作るんじゃないの?
生産性向上のためかな。そのかわりプログラムより設計が大変そう。
※本当に生産性向上に役立ってるかは知らない。因みにアジャイル開発ってのもあるかも。
本が嘘つきというより、私の記憶がねじ曲がったのかもしれませんが(笑)
部品化…そうですね。手法的にはそうです。。。
何だか中二病的な夢が壊れていくw
回答、ありがとうございましたw
No.3
- 回答日時:
>>その、戦艦大和を入れるとプログラミングしちゃう人はそもそもオブジェクト指向が何たるかを理解できてないのでは…
そのとおりで、オブジェクト指向が理解できていないからではありますけどね。
そして、最近の2ch掲示板で、オブジェクト指向関係の書込みを見ていても、オブジェクト指向に対して大きな勘違いをしている人が以外と多いので驚きを感じました。
いちおう「自称」あるいは「プロ」のプログラマっていう方たちが参加しているはずの、しかも十数年前に書かれた過去ログでなく、最近の掲示板の書込みにおいてですからね。
例にあげたものは、極端な例だから、誰もが誤りと分かります。
でも、オブジェクト指向が何でも解決できる「銀の弾丸」と思い込んでいて、それが分からない人が多い。
ちなみに私も、過去において数億レベルの開発費が無駄になったプロジェクトに参加していました。
そのプロジェクトに参加してすぐに、「これはダメだろう・・・」と思ったものですが、途中参戦で、しかも下請けで、何も言えなかった。
>>理念が間違ってるというより、プログラミングのバグなのでは…。
プログラムのバグレベルならいいのですがね。
多くは、オブジェクト指向の理念を間違えている、つまりは根本が理解されてないから被害がでかくなりがちです。
数億が無駄に…。私の本業は全くプログラミングと対称的で、最近入門書を理解した程度で対等に話すのはおこがましいと思いますが。
「銀の弾丸」とは思わない程度に夢抱いときますw
回答ありがとうございましたw
No.4
- 回答日時:
夢を壊したくないけど、javaを覚えた頃にはまた新しい言語、開発手法が出てくるかもよ。
笑。その度、ルール覚えるの大変そう。本当はまず基礎を勉強したほうがよいと思い込んでます。
例:例えばメモリの管理、マルチタスクの仕組み、究極は画面に図を描く仕組み。
アセンブラで全てできます。USBメモリのブート領域に組み込んでUSB起動とか。
ブート領域は512バイトと言われてるが、実は違う。まじです。
BIOSが何してるかとか。詳しくなっちゃう。笑。
で、windows8からまた電源の制御が違ってるとか。
まあ頑張って。
No.5
- 回答日時:
追伸。
オブジェクト指向をなんでも問題解決できる「銀の弾丸」とはみなさず、開発効率をアップさせる手法のひとつ。ツールボックスに入れる道具の1つというレベルで考えて使えば大きな効果を発揮してくれます。
No.2さんの回答で「その部品を継承して機能を強化する事もあるけど。ようは、部品毎にプログラミングしておいて組み合わせて使う。後でメンテナンスしやすいとかなんとか。」
と書かれているように、最近は、.NET Frameworkなど、そんな感じで機能豊富な部品が使える環境が増えてきています。
そんな便利な「部品」の存在を知り、使い方をマスターしておけば、プロジェクトマネージャが「この機能のプログラムの開発には20日くらいかかるなあ」と見積もっていても、実際には2日くらいでほぼ完成してしまうってこともありました。
「こんな複雑な処理のプログラムが、お手軽、簡単に作れて、しかもバグが無いなんて有り難いなあ」と最近のプロジェクトで感じることが多いです。
ちなみに、「簡単・便利・機能豊富」な部品ってのは、見えないところで沢山のコードが動いているってことです。
プログラムが複雑な処理をする必要があれば、それらの見えないコードは大活躍してくれます。
でも、そんな豊富な機能がいらない処理があるのも現実です。
昨日、「これ、データベースの処理が遅いんだけど・・・」と言われて、その機能豊富な部品を使わないコードに変更したら、1/20くらいの時間で処理が終わってしまい、ちょっと驚きました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・人生のプチ美学を教えてください!!
- ・10秒目をつむったら…
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・【大喜利】【投稿~9/18】 おとぎ話『桃太郎』の知られざるエピソード
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
[VBA] Classから他のClassを呼...
-
VBA シートのボタン名を変更し...
-
パソコンへの「Dropbox...
-
worksheetFunctionクラスのVloo...
-
カメラスクロールするのを動画...
-
VBA(エクセル)で自動的にボタン...
-
指定の動作中ユーザーフォーム...
-
ExcelVBAのユーザーフォームの...
-
マクロについて教えてください...
-
excel vbaでユーザーフォームに...
-
実行時エラー 438になった時の...
-
ListBoxで改行したい
-
なぜこんな初歩的なVBAのIf文で...
-
エクセルエラー13型が一致しま...
-
Excel VBAでWordの複数ファイル...
-
VBでフォームのイメージを印...
-
チェックボックスの文字色の変え方
-
VBA オブジェクトが空かどうか...
-
VBA 複数の行を高速で削除する...
-
MSFlexGridとDataGridの違いに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
共通モジュールでDBへの接続と...
-
[VBA] Classから他のClassを呼...
-
他のモジュールのプロシージャ...
-
Excel vbaで複数のテキストボッ...
-
用語の意味の違いを教えてくだ...
-
VB.netで、動的な型変換を行い...
-
WPFでCanvas の子要素にアクセ...
-
VB6で外部から静的アクセスが可...
-
VBA クラスにプロパティが実装...
-
C# Process.Start で標準入力
-
VBA オブジェクト追加
-
VBAで、Functionを、クラスモジュール...
-
VB.NETにて文字列で指定した関...
-
リフレクションはどういったも...
-
宣言とは違うオブジェクトを作...
-
コンポーネント指向って、どの...
-
Static Initializerについて
-
バウンドプロパティとは?
-
Mapに登録した値を登録した順に...
-
Windows8でのTomcatの自己アドレス
おすすめ情報
注:回答は回答で待ってますw