Smalltalk-72で学ぶOOPの原点 Advent Calendar 2019

1
0
26

TL;TR 抽象データ型からメンバー関数を動的にコールするだけが「メッセージング」and/or「オブジェクト指向」ではないのです! あなたの「オブジェクト指向」の理解や他者への説明、まず前提から見直す必要はありませんか? ないですか、そうですか…^^;


Smalltalkの歴代処理系の中でも特に初期の実装であるSmalltalk-72は、今のSmalltalkとはまったく違う言語で、非同期ではないながらもトークン列をメッセージとして送る実装が採用されているなど、いまひとつピンと来にくいアラン・ケイ発案の“メッセージングを介して決定の遅延を目指すオブジェクト指向”を学ぶのに適していそうです。LivelyWeb上に再現されたSmalltalk-72処理系をいじって遊びながら情報を持ち寄り、その後の単なる動的な関数コールを「メッセージ」と呼ぶようになってしまったこれ以降の世代のSmalltalkや他の一般的OOPLとの違い、また、主に静的型言語で採用されている「クラスで抽象データ型のスーパーセットを実現するOOP(カプセル化・継承・ポリモーフィズム)」との違いについて議論しましょう。

Smalltalk-72やメッセージングOOPに関するエピソードの紹介(“月刊ASCIIのバックナンバーに掲載されていたSmalltalk-72の記事でオブジェクト指向を学んだ。当時は処理系が無くてプログラムが動かせず学習が大変だったのに良い時代になった!”とか^^;)や、Smalltalk-72を触ってみての素朴な疑問やオブジェクト指向に絡めた質問だけを書いたエントリーなどプチ記事での参加も歓迎します! 続き記事的なエントリーの流れはいっさい気にせず、空いている日に自由にエントリーしてください。


Owner: sumim sumim

Calendar Sponsor PR