
【AI時代×哲学思考】オブジェクト指向と存在論が導く、コードに宿る「本質」と「世界の捉え方」
オブジェクト指向 (OOP) と 存在論 (Ontology) ― “コードで世界を構築する”という行為の哲学的意味とは? ―
どうも、ビジネス哲学芸人のとよだです。
突然ですが、ソフトウェアの開発現場でよく使われる「クラス」や「オブジェクト」といった言葉、実は古代から現代に至るまでの哲学者が問うてきた「何が存在するのか?」という存在論 (Ontology) のテーマと深い関係があるとしたら、ちょっと面白いと思いませんか?
本記事では、ソフトウェア開発が日常化したビジネス現場こそ、哲学的な問いが潜んでいるのではないか、という視点を提案します。
普段なにげなく行っている設計の背後にある「世界の捉え方」を振り返りながら、OOPと存在論の意外な交差点を一緒に覗いてみましょう。
1. “オブジェクト指向”は「何が存在するか」を決める行為?
OOP(オブジェクト指向)の基本イメージ
オブジェクト指向プログラミング (Object-Oriented Programming:通称OOP) は、扱いたい対象(概念やモノ)を「オブジェクト」として定義し、それらがメッセージをやりとりし合うように設計する考え方です。
クラス (Class):オブジェクトの“設計図”となる抽象的なテンプレート
オブジェクト (Object/Instance):クラスをもとに生成される“具体的な存在”
たとえば、ECサイトの会員管理システムなら、「Memberクラス」という設計図を用意し、そこから「山田さん」や「鈴木さん」といった会員オブジェクトが生まれます。メソッド(ふるまい)として「ポイントを加算」「会員ランクを変更」などを設定しておけば、ソフトウェアの世界で「山田さんのポイントが増える」といった動作を表現できるわけですね。
「存在論」ってどんな学問?
哲学の「存在論 (Ontology)」はざっくり言うと、「この世界に本当に存在しているものは何か?」を追究する領域です。物理的な机や椅子、心や数字、あるいは神や仮想世界など、「それが本当に“ある”と言えるのか?」を問うのがテーマです。
「目の前の机は物質として確かにあるけど、机という言葉やイメージはどこに存在するの?」
「同じように見えるものでも、本質的に同一と言えるの?」
……といった問いを延々と続けるのが存在論の醍醐味です。これらは一見するとビジネスやプログラミングと無関係に思えますが、「世界をどう捉えて、どんな要素や関係を設定するか」という点で実はOOPとも通じるところがあるんですよね。
2. ドメイン駆動設計 (DDD) に見る“存在の境界線”
「顧客」と「会員」は同じ存在か?
ソフトウェア開発の現場でよくあるのが、「顧客 (Customer)」や「会員 (Member)」といった言葉の曖昧さです。ドメイン駆動設計 (Domain-Driven Design:通称DDD) では、ビジネス用語の整理(ユビキタス言語)を通じて、この曖昧さを排除することが重視されます。
たとえば:
「顧客 = 実際に商品やサービスを購入した人」
「会員 = ログインIDや会員番号を発行された人」
こう定義したとき、
「会員で、まだ購入していない人」は顧客には含まれるのか?
「顧客だけど会員ではない人」はどう扱うのか?
といった細かな境界線が問題になります。テーブル名やクラス名が混在すると、「CustomerテーブルとMemberテーブル、どっちが主なんだっけ?」と混乱することも。
境界を明確化する意義
DDDの狙いは、そうした曖昧さを放置せずに「われわれの世界には何がどう存在しているか」をはっきりさせること。
あるサービスでは「会員数こそが重要だから、Memberを中心に考えよう」
逆に「売上重視だから、Customerをメインとし、会員は補助的存在にしよう」
いずれにせよ、ビジネスロジックや企業戦略が色濃く反映されます。この選択がそのまま“世界観”の設定になるのです。
3. アリストテレスが先取り? 形相(エイドス)と質料(ヒュレー)
古代哲学での“抽象”と“具体”の二層構造
古代ギリシャの哲学者アリストテレスは、「形相(エイドス)= 普遍的な本質」と「質料(ヒュレー)= 具体的な素材」という二層構造を唱えました。
たとえば「犬」という普遍概念(形相)があり、それぞれの個体(質料)が具現化される。
“チワワ”でも“秋田犬”でも、犬としての本質を満たしていれば犬と呼べる。
クラス(抽象)とオブジェクト(具体)の関係
OOPの「クラスとインスタンス」は、この形相・質料のモデルとよく似ています。
クラス (Class):「顧客クラス」「会員クラス」といった抽象的テンプレート
オブジェクト (Instance):個別に生成される具体的存在(「山田さん」「鈴木さん」など)
もちろん、プログラミング言語が哲学的本質を完全に表現するわけではありませんが、「抽象と具体を二段階で捉える」という発想は、古代から続く思考法のひとつと言えるでしょう。
4. “存在をどう定義するか”がビジネスに効く理由
(1) 組織内の共通言語が生まれる
「顧客」と「会員」のような用語を厳密に定義すると、社内での会話や設計時の衝突が大幅に減ります。
「Customerは購入実績がある人、Memberは登録だけ済ませた人」
「両方に属するならVIPCustomerとして扱う」
……といった形で整理すれば、マーケティング・開発・経営など、異なる部門が同じ“地図”を共有して会話できるのです。
(2) 再利用と拡張がしやすい
存在を明確化しておくと、システムの拡張もラクになります。
新しく「プレミアム会員」を作るなら、既存のMemberクラスを継承して機能を追加するだけ
同じ定義を他サービスにも使い回せる
結果として、開発コストやコミュニケーションロスの削減につながり、ビジネスの機動力が増します。
(3) 新規事業の要件定義に役立つ
「この新サービスにはどんなユーザーや商品、取引が登場するか?」を整理する作業は、“世界のエンティティ(存在)”を洗い出すプロセスにほかなりません。
どの概念を独立させるか?
似たものを統合すべきか?
ここで曖昧な言葉を放置すると、のちの開発フェーズで混乱が起きがち。存在論的な問いかけで早めに解像度を上げると、プロダクトの方向性がスムーズにまとまります。
5. “神”になった気分? OOPに宿る創造性
コード上の“世界”にルールを敷く
ポイント加算や有効期限の消滅など、コードにルールを書き下ろすことで、プログラム空間ではその法則が絶対になります。これは比喩的に言えば、「自分たちで世界を創造している」ような感覚すら伴います。
開発者は「この宇宙では何が存在し、どんな法則で動くのか?」を定義する
もちろん、人間的ミスやビジネス上の変更でしょっちゅう修正を迫られる
でも、それこそが「地図を描いては塗り替えていく」哲学的な営みに近い
不完全な“地図”を何度も書き換える
哲学者の打ち出した理論が後世に修正を迫られるように、ソフトウェアのモデルも、ビジネスや技術の進歩に合わせてアップデートしていくのが常。大事なのは、「今のモデルは本当に妥当なのか?」と問い続ける姿勢です。
6. AI時代にも残る「何が存在するのか?」という問い
AIがクラス図を自動生成してくれる時代
ChatGPTなどのAIに「会員管理システムのクラス図を作って」と尋ねると、かなり“それっぽい”案が出てきます。ありがたい話ですが、気をつけなければならないのは「果たしてこのモデルは本当に自社のビジネスに合致しているか?」という確認です。
AIは統計的に妥当な構造を提案しているだけ
「うちは顧客と会員を分けたいのに、AIがひとつにまとめちゃった」などのズレが起こりやすい
結局、最終的に“何を存在させるか”を決めるのは人間
人間にしかできない判断
AIがどれほど賢くなっても、「どういう存在を扱い、どんな関係を重視するか」は事業戦略や価値観と深く結びつくため、最終決断はまだ人間に委ねられます。ここに、存在論的な問いの面白さがいまなお残っているわけです。
7. まとめ ― ビジネスと哲学の交差点を楽しむ
OOPのクラス設計は「世界をどんな要素で構築するか」を決める行為
DDD(ドメイン駆動設計)の境界線整理は、そのまま存在論的な問いでもある
クラス(抽象)とインスタンス(具体)の二層構造は、古代哲学の形相と質料を連想させる
ビジネスでのメリット(共通言語・拡張性・新規事業の要件定義)に直結
AI時代でも「最終的に何が在るのか?」を決めるのは依然として人間
もし次にクラス設計や要件定義をするときには、少しだけ「これって本当にこの世界に必要な存在だろうか?」と問い直してみてください。スムーズに決まらないなら、それは“言葉や概念の境界”が曖昧な証拠かもしれません。
実は、こうしたモヤモヤは哲学の大好きな領域でもあります。ソフトウェア空間における“存在の地図”を描き替える作業は、哲学者が世界を理解しようとした営みとも地続きなのです。
ちょっと壮大に聞こえるかもしれませんが、ぜひ日々の開発やプロジェクトでも“世界をマッピングしている”という視点を楽しんでみてください。
参考文献・関連書籍
白米FMとは?
日米のIT業界で働く小学校からの友人2人が、最新トレンドから古の哲学思想まで気ままに語り合う人文知系雑談ラジオ。
コテンラジオ、超相対性理論、a scope等に影響を受け、一緒に考えたくなるような「問い」と、台本のない即興性の中で着地点の読めない展開が推しポイントです。
移り変わりの速い時代だからこそ、あえて立ち止まり疑ってみたい人。
他者の視点や経験を通して、物事に新しい意味づけや解釈を与えてみたい人。
自分の認知や行動を書き換えて、より良く生きる方法を一緒に探求しましょう。
※ポッドキャストの文字起こし版へのリンクはこちら(LISTEN)