- blogs:
- cles::blog

オブジェクト指向で参った
明日はオブジェクト指向についてちょっと大学でしゃべらなければならないのですが、毎年ながらちょっと気が重いです。オブジェクト指向については研究室でも結構ディスカッションを重ねているので*1、普段オブジェクト指向とひとくくりの概念で表されている事柄がさまざまな研究の寄せ集めで構成されているということは分かっているのですが、それを入門者向けに明確にまとめるのが難しいです。
† 一通り押さえていくと
まずはずせないのが、メッセージパッシングに重きを置いているアラン・ケイのsmalltalk関連の話とか、その絡みでカールヒューイットのアクターモデルあたりの話とか。あとは、俗に言われるオブジェクト指向の3要素である「カプセル化」「継承」「多態性」という話の基になっているクラスに重きをおいたsimulaやそれに影響を受けて作られたC++あたりの話でしょうか。
そうしないと現在学んでいるJavaがこの延長線で作られているというのが理解できないわけです。うーん、そうなるとEiffel(アイフル)とかの話も入れたくなってきて・・・・・・という感じでだんだん押さえが利かなくなってくるのです。変に中道を行くと、ちょっと知っている人から「それは違うだろ!」というツッコミが怖いので、なんかこう上手に一刀両断にできる方法ってないですかね・・・・と思って、いろいろGoogleで検索をしてみたら面白いサイト見つけたのでついつい時間を食ってしまいました。
sumim’s smalltalking-tos - オブジェクト指向の概念の発明者は誰ですか?
「オブジェクト指向」は「オブジェクト指向プログラミング」の意味に限っても、現在まで、少なめに見積もった場合でも3つ(単にオブジェクトとクラスを使ったプログラミング…という論外なのを含めれば4つ)の違った切り口を持つようになってきているからです。
1. “メッセージングによる可能な限り動的な処理・実装・設計”(メッセージ指向)
2. “抽象データ型のスーパーセット”“継承によるプログラミング”(クラス指向)
3. “手続きによる抽象化”
よくまとまっていて分かりやすいです。さすがにこの3の定義は知らなかったので新鮮でした。
でも、初学者向けの説明ってこれじゃダメなんだろうなー
- *1: というか、教授とその話を始めると盛り上がりすぎてしまう。
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/1369
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110776)
3 . 年次の人間ドックへ(110371)
4 . 2023 年分の確定申告完了!(1つめ)(109917)
5 . 三菱鉛筆がラミーを買収(109817)