LoginSignup
2
1

More than 3 years have passed since last update.

エージェント指向+サブジェクト指向+オブジェクト指向=新たなプログラミングパラダイム~プログラミングのあり方についての研究と考察②

Posted at

はじめに

どうも、こんにちは。
前回の記事では、わたしの伝えたいことがうまく読者の方々に伝えられたか心配しておりましたが、
ある読者の方からご質問をいただきまして、こちらの意図を正確にくみ取っていただけたようで、ありがたい限りです。
早速ですが、筆者の頭の中が整理されてきたので、前回の続きの記事を書かせていただきます。

今回は、「エージェント指向」、「サブジェクト指向」、「オブジェクト指向」のそれぞれについて個別に説明しつつ、これらの関係についても、例を用いて解説していきたいと思います。
では、今回もぜひお付き合いください。

本文

前回のおさらいも兼ねて。

「オブジェクト」とは、現実世界であれば”モノ”にあたります。これは、なんらの意志も持たず、ただ、与えられた状況に対して、受動的に動くことしかできない存在です。
「エージェント」とは、現実世界であれば”ヒト”にあたります。これは、なんらかの意志を持っていて、どのような状況に対しても、能動的に動くことができる存在です。
「サブジェクト」とは、現実世界であれば”コト”にあたります。これは、目に見えないルールや法則(直訳すれば「主題」「課題」といったところ)です。これは、オブジェクトとエージェントを結ぶ、あるいはエージェント同士を結びつける存在であり、エージェントに対しては、行動を促したり、その行動を監視したり、評価する存在です。

ここからは、話をわかりやすくするために、あるたとえ話をさせていただきます。
この記事を読んでいるあなたは、今、休日中の学生だとします。
学校や教師からは、ある決められた宿題が与えられているとします。
※これが、サブジェクトの持つ機能である「状況の生成・状況の通知」です。
そしてあなたには、まじめに宿題に取り組むことも、宿題をせずに遊んでしまうこともできます。
※これが、サブジェクトの持つ機能である「権利・権限の付与と通知」です。
そして、あなたは、今、自分に与えられている状況と権利・権限と、自分自身の生きる目的だったり目標、あるいはこの時の気分に従い、宿題に取り組むことにしました。
※これが、エージェントの持つ機能である「状況の分析」「状況の判断」そして「意志決定」です。
そして、宿題にまじめに取り組んだ結果、あなたは学校や教師から高く評価されるようになり、今後、学校の図書を優先的につかわせてもらえる権利・権限を与えられたとします。
※これが、サブジェクトの持つ機能である「行動の監視・評価」と「アクティヴィティログのポリシーへの反映(権利・権限の拡大)」です。
※この逆もありえます。もし、あなたが学内で不適切な行動を取ったばあい、学内での権利・権限が縮小してしまうかもしれません・・・。

オブジェクトについては、話は比較的わかりやすいと思うので、簡単に解説します。
やはり、あなたは学生で、学校や教師からは学校の図書を借りる権利・権限を与えられています。(正確には権利・権限はサブジェクトが与えています)。
※ここで出てくる”学校の図書”が「オブジェクト」にあたります。つまり、学生(エージェント)であるあなたは、学校の図書(オブジェクト)にアクセスすることができるということです。

ここで、あなたは学校や教師からは図書を借りる権利・権限が与えられているので、これを借りることにしました。
ところで、なぜ、ここでの権利・権限は、正確にはサブジェクトが与えるのかといえば、本来、権利・権限は各人に平等に(それも生来的に)与えられているものであり、ヒトがヒトに与えるものではないからです。たとえば、”憲法や法律”は、目には見えませんが、現実の中で確かに効力を発揮していますし、ヒトに(ある一定度の)自由を与えたり、自由を制限したりしています。
ですから、エージェント(ヒト)が同じエージェントに権利・権限を与えるのではなく、サブジェクトが直接、(同じエージェントを介さずに)エージェントに権利・権限を与えていると考えたほうが合理的なわけです。たとえば、生まれたての”赤ん坊”を殺す権利はだれにもないですし、赤ん坊は生まれたときからすでに一定の権利(生存権)を有しています。これは親が与えたものでしょうか?それとも国家が与えたものでしょうか?わたしはそのいずれでもないと思います。ですから(わたしの中では)、必然的に「サブジェクト」という発見・発想に至ったのです。

まとめ

”まとめ”といっておいてなんですが、今回は、内容をうまくまとめる自信がありません。
しいて言えば、これらの、”モノ”と”ヒト”と”コト”を、うまく組み合わせて、システムを形作っていく=全体を構成していくといえばいいでしょうか。
筆者はなにぶん未熟なので、読者の方々には余計な混乱(と迷惑)を招いてしまうだけかもしれません。
ですが、自分の考えやアイデア(?)を一人でも多くの方に伝えられたら、と思い書かずにはいられませんでした。
次回も同じテーマで記事を書き、Qiitaで発表させていただけたらいいなと思います。

今回はこれで終わりにしたいと思います。
お付き合いくださり、ありがとうございました。

2
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
1